15-212: Principles of Programming
Spring 2008


Have a great summer!


What's Current?


Class material

  • Schedule
  • Midterm
  • Final
  • Syllabus
  • Textbooks
  • Language and programming environment
  • Handouts
  • Hints and suggestions from the TAs
  • Assignments
  • Course information

  • Lectures: Tues and Thurs, 3:00-4:20, in Baker Hall A51
  • Recitations:
  • Section A, Weds, 12:30-  1:20   in Doherty Hall 2105:   Matt Banner
  • Section B, Weds,   1:30-  2:20   in Baker Hall 255A:   Matt Douglass-Riley
  • Section C, Weds,   2:30-  3:20   in Wean Hall 5312:   Chris Martens
  • Section D, Weds,   3:30-  4:20   in Wean Hall 5312:   Sean McLaughlin
  • Midterm: Tuesday, February 26, 3:00-4:20, in the lecture room.
  • Final: Monday, May 12, 2008, 1:00pm to 4:00pm, location TBA.

  • Bulletin Boards

  • Official announcements: academic.cs.15-212.announce
  • Discussion of assignments: academic.cs.15-212.discuss
  • Submit an article to academic.cs.15-212.discuss.

  • Teaching Staff

    Professor Michael Erdmann
    Email me @C
    Phone 268-7883
    Office Wean 5307
    Office Hours Thurs 4:30-5:30 pm


    Teaching Assistants Matt Banner Matt Douglass-Riley Chris Martens Sean McLaughlin
    Email mbanner @A  mdougla1 @A cmartens @A seanmcl @C
    Phone 8-4008 8-4008 8-4008 8-8078
    Office Wean 3130 Wean 3130 Wean Linux Clusters Wean 8309
    Office Hours Mon 7:30-8:30 pm Mon 6:30-7:30 pm Sun 5:00-6:00 pm Wed 4:30-5:30 pm

    Explanation: All email addresses listed above should be interpreted as follows:
                @A  ---  @andrew.cmu.edu
                @C  ---  @cs.cmu.edu
    They are not clickable in order to (vainly try to) reduce spam.



    Do Your Own Work

    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.

    Penalties:

    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:

    1. For the first such incident, the penalty will be a net score of -50 (negative fifty points) for the assignment.
    2. For the second such incident, the penalty will be a net score of -100 (negative one-hundred points) for the assignment.
    3. For the third such incident, the penalty will be a failing grade in the course.

    We have tried to separate out momentary lapses of judgment, leading a student to submit work not entirely his/her own, from more serious forms of cheating. For example, purposefully breaking into a computer system in order to obtain a solution to an assignment, either from another student or a member of the teaching staff, is an example of an extremely serious violation, likely to result in expulsion from the University. There are many other such examples. Any such violations will be handled in accordance with the University Policy on Cheating and Plagiarism.

    Advice:

    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.

    Michael Erdmann