15-212: Principles of Programming |
15-212 was part of the Computer Science core sequence at Carnegie Mellon University. The goal of the course was to teach high level programming techniques, with an emphasis on abstraction and reasoning about programs. For more information, consult the course syllabus.
The course was last offered in Spring 2011.
Professor | Michael Erdmann |
"me" addressed at "cs.cmu.edu" | |
Phone | 268-7883 |
Office | GHC 9203 |
Office Hours | Thursday 5:00-6:00pm (you may also be able to catch me briefly after class on Tuesday and Thursday). |
Teaching Assistants | Pablo Chavez | Mark Hahnenberg | Nathan Herzing | Roger Su | Ian Voysey |
pchavez @A | mhahnenb @A | nfh @A | rmsu @A | iev @A | |
Office Hours | Wed [see below] | Wed 4:30-5:30pm | Tue 7:00-8:00pm | Sun 5:00-6:00pm | Mon 3:00-4:00pm |
Location | Gates 5th floor clusters | Gates 5th floor clusters | Wean 7th floor couches | Wean 7th floor couches | Gates 9012 common area |
Pablo's office hours are Wednesday 5:30-6:30pm when no assignment is due; otherwise they are midnight-1:00am (early morning, before assignment due time).
Explanations:
We encourage you to discuss methods and problems amongst yourselves. Learning from each other is potentially very beneficial. You should feel free to discuss at a high-level the basic ideas involved in functional programming, basic approaches to an assignment, nuances of SML, and so forth.
However, please do not write code together. Coding, specs, and written answers to assignments must all be "in your own words."
Read pages 6 and 7 in the course syllabus and read the University Policy on Cheating and Plagiarism.
Any work submitted as a homework assignment or examination must be entirely your own and may not be derived from the work of others, whether a published or unpublished source, the worldwide web, another student, other textbooks, materials from another course (including prior semesters of this course), or any other person or program.
You may not copy, examine, or alter anyone else's homework assignment or computer program, or use a computer program to transcribe or otherwise modify or copy anyone else's files.
We may sometimes run automatic code comparison programs (such as MOSS). These programs are very good at detecting similarity between code, even code that has been purposefully obfuscated. Such programs can compare a submitted assignment against all other submitted assignments, against all known previous solutions of a problem, etc. The signal-to-noise ratio of such comparisons is usually very distinctive, making it very clear what code is a student's original creative work and what code is merely transcribed from some other source.
If we run MOSS (or any similar program) and detect similarity between your code and any other source beyond the similarity expected due to code we have given you, you will receive a penalty as follows:
Start early on assignments. One reason students copy from each other is that they do not take seriously the creative effort required to work through a problem set. Some students start the night before an assignment is due, discover that they are too tired to think properly or simply haven't mastered the skills to code properly in a new language, and in desperation resort to copying someone else's code. DO NOT PUT YOURSELF IN THAT POSITION.
For those of you who do start early, please be careful that no one copies your code. It is your responsibility to protect your programs, homework assignments, and examinations from illicit inspection or copying. You are expected to use the standard file system protection mechanisms to render your course materials unreadable to anyone other than yourself. Failure to do so may be regarded as evidence of improper collusion on homework assignments, subject to the penalties described above.
[ CS 15-212 Home page | schedule | language | assignments | handouts | hints etc ]
Please note: all aspects of this set of webpages, including assignments, exams, schedules, handouts, reading, and code are subject to change. Thanks.