Instructor: | Carl Burch |
Office: | Peter Engel Science Center 205 |
Office hours: | Days 1, 5: 1:30-2:30; Day 3: 8:30-9:30 drop-ins and appointments welcome any time |
This course discusses the concepts underlying programming languages. For three major programming language paradigms --- procedural, object-oriented, functional --- we'll examine correctness, compilation, and other issues surrounding the paradigm. We will look at specific languages so that the discussion will be concrete, but our goal is to understand the concepts underlying the languages, not language specifics.
This class will be very Thursday-intensive. Every time class meets on a Friday (except the first), an assignment is due. Every time class meets on a Thursday, a test will occur.
Thu 23 Jan | Quiz 0 | ||
Fri 31 Jan | Project 0 due | Thu 6 Feb | Quiz 1 |
Fri 14 Feb | Project 1 due | Thu 20 Feb | Quiz 2 |
Fri 28 Feb | Project 2 due | Thu 13 Mar | Midterm |
Fri 21 Mar | Project 3 due | Thu 27 Mar | Quiz 3 |
Fri 4 Apr | Project 4 due | Thu 10 Apr | Quiz 4 |
Fri 25 Apr | Project 5 due | Thu 1 May | Evaluations |
Thu 8 May | Final (11am) |
There are three parts to this class (but not equal parts), and the plan is different for each part.
There are a total of 1,000 points over the semester.
Class participation | 40 pts |
Projects (60 pts each) | 360 pts |
Assignments (25 pts each) | 175 pts |
Quizzes (30 pts each) | 150 pts |
Midterm | 125 pts |
Final | 150 pts |
Total | 1,000 pts |
A | 900 or more | C | 700 to 779 |
AB | 880 to 899 | CD | 680 to 699 |
B | 800 to 879 | D | 600 to 679 |
BC | 780 to 799 | F | less than 600 |
The A grade is meant for outstanding performance; a B is more typical and represents solid preparation for future computer science courses, while a C represents marginal preparation. I assign grades independent of any overall goal, but the average letter grade will likely be near 3.0, the historical average over CSB/SJU computer science classes.
Forty points are designated for ``class participation.'' Twenty of these will be based on attendance, the other twenty on a subjective judgement of active participation, evidence of which would include your questions (during and outside scheduled class time), good use of scheduled laboratory time, and participation in classroom problem solving. I will assign half of these points near the semester's middle, and the final half near the semester's end.
Take this as an invitation: I value your active participation in class, and I expect you to be fully tuned in during classroom and laboratory sessions.
Projects and assignments are a major component of this course. They will be long, and the deadlines are firm. Start as early as possible to allow yourself the opportunity to recover from computer and personal problems. My expectation is that you'll find them so exciting that you'll begin working on them as soon as class ends!
Projects and assignments are due at 11:20am on the announced due dates. You lose 10 points for each day that elapses thereafter, whether or not it is a workday, until the following class period, at which time no more assignments are accepted.
If your bring your assigment after class has begun, you have incurred the late penalty. I will be happy to accept papers handed to me or slid under my office door by 8am on the due date.
There are five quizzes, a midterm, and a final in this course. Quizzes will typically be 25~minutes in length; the midterm and final will both extend for the full class period.
On these tests, it will be common for the average test grade to be 75%. When the median grade on a test falls below this, the scores on that test will be increased so that the median is 75%. (Note that, because I use the median, the top score does not ``blow the curve.'')
If you miss a test, you must receive advance permission to receive more than a 0. (Naturally dire medical emergencies usually constitute an exception.) I will either double your lowest quiz or exam score or administer a make-up, at my discretion. Notify me well in advance --- 24 hours for exams and quizzes, and two weeks for the final. Do not skip a test without my prior approval!
Note that I may require you to document your reason for absence. Travel arrangements and work schedules are not adequate reasons to miss a test.
You must properly attribute any work or ideas you use in assignments for this course which are quoted or derived from others. Plagiarism includes not only copying the ideas and the written and spoken words of others, but also copying or otherwise appropriating their computer files as well. Interfering with the work of others including their use of computing facilities is also a serious academic offense. I will report all instances of plagiarism, cheating, or other academic misconduct to the appropriate Academic Dean, and I will give an F for that assignment or for the course at my discretion.
While I encourage you to discuss class material with your classmates, you may not discuss the specifics of a project or assignment solution. (Groupwork specifically allowed by the assignment is an exception to this rule.) A strong correlation between your solution and a classmate's solution constitutes evidence of cheating.
Programming languages are an important foundation of computing; thus, as we examine programming languages, their foundations, and their relationship to the rest of computer science, you will find this course wide-ranging, challenging, and (I hope) interesting.
I look forward to working with you this semester!