CS54 Syllabus

Handouts, announcements, etc.

All handouts will be distributed on the course web page. This will include lecture notes/slides, assignments and other handouts. You are responsible for all material and announcements posted on the class web page, so please check it regularly. If this is a problem for anyone, feel free to come talk to the instructors. For time critical announcements, we will use e-mail.

Course Description

This course is a combination of functional programming and formal proof while exploring a number of topics in computer science. You should have either taken CS51 or have gotten approval from someone in the CS department to skip CS51.

Coursework

Grade Calculation

Assignments

We will have roughly weekly assignments. The content of the assignments will vary through the semester ranging from SML and assembly programming in the first half of the semester, to more proof-based and mathematical assignments in the second half. We will drop the lowest assignment grade.

Tests

We will have two in-class tests which are shown on the schedule on the course web page. Among other topics, exams will involve writing code on paper, not at a computer. To prepare for this, we recommend practicing writing code on paper (or on the whiteboards in the lab) throughout the semester. The (cumulative) final examination is also scheduled on the course calendar during our final exam time slot.

Attendance

Class attendance is required.

Course policies

Late policy

Except under extenuating circumstances or when otherwise specified, late assignments will not be accepted.

Academic honesty and collaboration

We take academic honesty very seriously.

You are encouraged to get together in small groups to discuss material from the lectures and text. However, the work that you turn in must be done independently, unless an assignment is explicitly designated as one in which collaboration is allowed.

In particular, your work must not be based on information obtained from sources other than those approved for the course (i.e., the text, web pages linked from the course web page, and materials provided in lecture). You should never copy another students code or solutions, exchange computer files, or share your code or solutions with anyone else in the class until after an assignment is due. You may, however, use any code that we provide to you or that comes from the textbook, as long as you acknowledge the source. Additionally, the tutors are allowed to help you with your code.

A few rules to follow for this course to keep you out of trouble:

If you are ever unsure about what constitutes acceptable collaboration, please ask!

For more information see the Computer Science Department's Academic Honesty Policy and the college's policy.

Computer and cell phone use during class

You may use your laptops/devices during lecture to take notes. Please resist the temptation to use your laptop/devices for other purposes (e-mail, chatting, web browsing, games, texting, etc.). The class moves quickly, so getting distracted will cause you problems down the line.

Computer lab use

You may use your own laptop or the Computer Science department computers for this course. If you use the CS computer labs (which I encourage you to do), please read about the Computer Systems Policies.

Disability accomodations

Pomona College is committed to providing equal opportunity for participation in all programs, services and activities, and I personally care deeply about equitable access to computer science instruction. If you feel invisible, unheard, or otherwise miserable, or if you have a mental health concern, please don't hesistate to get in touch with us or to request accommodations through the Disability Coordinator on your home campus. Pomona College's policy on disability accommodations can be found at the Dean of Student's website. We've also provided a list of resources compiled by students below:

The earlier you can provide us with notice of your need for accommodations the better, but we are always here if something comes up partway through the semester.

Due to the nature of this course, extensions or alternative deadlines on assignments will not in general be allowed—extensions would lead to more stress due to overlapping deadlines.