Overview

Programming languages are the tools that we use to communicate with computers to get them to do our bidding. Of the four most well-known programming language paradigms, only object-oriented programming (such as in Python and Java) is commonly seen outside of this course here at Carleton. To better understand other programming language paradigms, we will program in two other main paradigms: functional programming (Scheme), and imperative programming (C). In doing so, the goal is to gain an understanding of characteristics from each, and to appreciate that each has made different trade-offs in design reflecting the creators' goals. Additionally, practice at these dramatically different approaches to programming help making learn new languages easier to do. Moreover, we will develop in C an interpreter for Scheme, in order to see how a programming langauge interpreter can actually be constructed.

Instructor Information

Textbooks

Your Grade

Individual vs team grades

For each assignment that you work on in a team with another students, you'll receive a grade based on the quality of that joint submission. This grade will be used to form part of your overall homework average. Your overall homework score will form part of your course average, which will be used to determine a final grade.

That said, you also must do work of passing quality on your individual assignments and exams in order to pass the class.

Homework Policy

Each assignment will have a specific time for which it will be due, and your electronic submissions are timestamped. You have four "late-days" that you can use at anytime during the term, with no explanation or request needed. If you are off-campus, if you are sick, etc., these are all exactly the sorts of situations for which these late-days apply. You automatically use up a late-day for every 24 hour period that passes when you turn in an assignment late. For example, if you turn in two assignments late, each 17 hours after the due time, that counts as two late-days. Likewise, if you submit a single assignment 30 hours after the due time, that also counts as two late-days. Assignments that are turned in late after your four late-days are used up will not receive any credit.

Working Together

Collaboration, Plagiarism, and the Difference Between the Two

There are two different kinds of working together: collaborating and plagiarism.

Collaborating

Plagiarism

The following are examples of plagiarism:

I am compelled by Carleton policy to submit plagiarism cases that I find to the Dean of Students, who in turns brings the evidence before the Academic Standing Committee. The academic penalty for a finding of responsibility can range from a grade of zero in the specific assignment to a F in the course.