Course Objectives. To gain an understanding of the principles of a new programming paradigm which views computation as the evalution of functions with distinctly mathematical properties. To gain a better understanding of (and hopefully, appreciation for) recursion as a programming technique, and the use of mathematical logic (including induction) to establish the correctness of a program.
Language and Compilers. We will look at Elixir, Erlang, and possibly Haskell. All lab computers have Elixir tooling installed, as well as the Erlang interpreter (erl) which Elixir builds on. We use the GHCi interpreter for Haskell.
Class Web Pages. The syllabus, policies, lab exercises, homework, and sample code are posted as links from the class website. When available, some lecture notes will be posted as well.
Attendance. Students are allowed two
unexcused absence per semester. Subsequent absences, if
unexcused, may be reported to the Office of the Dean of Students, which
will then issue a cut warning. A student with too many such
absences may be dropped from the course.
Reading Assignments. Read the sections of the textbook as assigned. While doing the reading, I encourage you to look at the exercises (whether assigned or not) and think about how to do them. Be sure to ask questions about what you don't readily understand.Homework Assignments The assignments are graded out of 50 points. There will likely be 10 assignments, along with some boardwork, however, this may change. Late assignments are docked 5 points per day late. Note that no assignment more than 4 days late will be accepted for grading.
Students may discuss ideas for solving an assignment among themselves. However, each assignment must be your own work unless collaboration is specifically allowed in the assignment. Turning in any portion of work written by another is an Honor Code violation and grounds for disciplinary action as allowed by University policy.
Grading. Grades are assigned according to a method whereby the mean of the top class scores are used to determine the cutoff points for each letter grade; in this way, final scores are based on the performance of the class as a whole. The instructor reserves the right to move grades up or down in the distribution based on factors such as attendance, improved (or not) scores through the quarter, etc.
Stephen P. Carl