Syllabus

Instructor Dr. Carl Burch
E-mail:
Telephone:450–1377 (office); 499–9892 (home)
Office:MCRey 310
Office hours:  T 8:30–9:30, W 1:10–2:00, R 1:30–2:30, F 10:10–11:00
drop-ins, appointments always welcome
Objectives
  • Distinguish the functional, procedural, and object-oriented paradigms, including experience with programming within examples of each.

  • Apply functional techniques within Haskell's context, including higher-order functions, currying, persistent data structures, and monads.

  • Define the basic concepts of languages, including syntax definition, type models, and evaluation order.

  • Contrast approaches to integrating concurrency into languages.

  • Discuss language translation system implementation, including the distinction between interpreters and compilers, the basic compiler pipeline, and techniques for translating language features to machine language.

  • Identify the varieties of programming languages, including both historic and current examples.

Textbook

Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages, by Bruce Tate, published by Pragmatic Bookshelf. An electronic version may be purchased from pragprog.com.

Web page www.cburch.com/cs/360/
Evaluation

There are a total of 1,000 points over the semester. Letter grades will be assigned with cutoffs at 900 for an A, 800 for B, 700 for C, and 600 for D.

Class attendance/participation 60 pts
Assignments 340 pts
Project 150 pts
Tests (three, 100 pts each) 300 pts
Final 150 pts
TOTAL 1,000 pts

I reserve the right to make adjustments in the entire grading scheme or in particular cases.

While I do not have a specific goal about the assigned grades, the grades I assign tend to average around 3.0. Note that I do not normally curve grades at the end of the course; instead, I monitor your progress and perform any curves as I grade tests. When I curve test scores, I add a fixed amount to all scores; as a result, some test scores may end up being above 100%. I anticipate, but will not insist, that the median test score will be around 75%. Normally, scores in the non-test categories will be higher; the average class grade will likely be a B even though the average test grade is a C.

Participation

Several points are designated for class participation. I will assign half of these points near the semester's middle, and the other half near the semester's end.

I do monitor your class attendance. If your attendance is excellent (missing one or fewer classes each half-semester), you will receive at least 60% of these attendance/participation points. If you feel your absence should be excused, please warn me about the absence a day in advance. Whether I excuse your absence is my call.

The remaining 40% of these points are for participation, including both questions during class and responses to questions during class. I may give more than full credit in unusual circumstances. Take this as an invitation: I value your active participation in class, and I expect you to show evidence of being fully tuned in during class sessions.

Assignments

You will often have assignments. Unless otherwise specified, you should feel free to work alone or with one other student. If you work with somebody else, you should jointly submit a single solution. I reserve the right to change this policy, individually or collectively, at any time.

You may also ask occassional questions of classmates when you need help. Under no circumstances should I receive two copies of identical or near-identical solutions.

You will be given at least a week to complete each assignment, and they will normally be due at 5pm on Fridays. For each 24-hour period from the time due, I will deduct up to 10% of the points possible.

Project

About midway through the semester you will be assigned to study a particular language on your own (after an opportunity to express your own interest). You will develop a written tutorial introducing students to elementary programming in that language, and you will present a lecture in class presenting the language.

Tests

The scheduled days for tests, listed below, will likely not change.

Wed 12 SepTest 1
Wed 10 OctTest 2
Wed 7 NovTest 3
Tue 11 DecFinal, 9:00am

Tests will last the full class period, 50 minutes. The final will be 120 minutes long.

If you miss a test, you must receive advance permission from me to receive more than a 0. (Dire medical emergencies usually constitute an exception.) If you are excused from the test, I will either double your lowest quiz or exam score or administer a make-up, at my discretion. Let me know well in advance — 24 hours for exams and quizzes, and two weeks for the final. I would like to remind you that, when e-mail is impossible, telephones exist also. 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.

Cheating

Any instances of academic dishonesty (plagiarism, cheating on exams or quizzes, submitting work that is not fully your own, etc.) will be reported to the Academic Integrity Committee. For details on the procedures involved with academic dishonesty issues please refer to the Hendrix catalog.

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 is also a serious academic offense.

Discussing or viewing others' solutions to assignments is officially out of bounds, as is discussing or showing your own solution to others. In practice, I realize, you may help other students; this presents a problem only when the solution you submit is substantially similar to another student's. A strong correlation between your solution and a classmate's solution constitutes evidence of cheating.

Office hours

Feel free to stop by my office any time you want to talk about something related to the class. I do have office hours listed on the Web page, but they are not intended to limit you. The office hours represent when I will try to be available in my office, but I'm equally available at all times that my office door is open. I'm also happy to arrange appointments.

If you're not in the building, feel free to telephone my office. And if I'm not in my office, you can send e-mail. But please try to contact me directly before e-mail: E-mail is much less efficient.

Electronics

Most Hendrix students intuitively know the appropriate bounds for behavior in class. But: Cellphone use is prohibited during class, even for text-message or leaving the classroom to receive calls. Use of laptops is allowed, but only for activities related directly to what is currently being discussed; I reserve the right to prohibit them if I feel this policy is being abused.

Any inappropriate use of electronic devices (or of reading materials) is worse than an absence, since it distracts other students. It will count accordingly in the attendance/participation policy; you could potentially receive a negative score.

On tests, no electronic devices other than a simple watch are permitted.

Disabilities

It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Any student who needs accommodation in relation to a recognized disability should inform the instructor at the beginning of the semester. In order to receive accommodations, students with disabilities are directed to contact Julie Brown in Academic Support Services at 501–505–2954.