McMaster University
Principles of Programming

Sfwr Eng 2S03 / Comp Sci 2S03, Term 1 2014/15

assignments   slides   tutorial material


Monday, Wednesday, Thursday 17:30-18:20 in TSH/B128


Tutorials will start the week of Monday, September 8th.


Dr. J. Carette, ITB-168 , ext 26869, email: carette at mcmaster dot ca.

Office hours: 16:30-17:20 Mondays and Wednesdays.

Teaching Assistants

Dan Szymczak (szymczdm), Sal D'Amore (damoresp), Natalie Perna (pernanm), Colin Gagich (gagichce), Dylan Aspden (aspdendh), Yuriy Toporovskyy (toporoy).

Course Objectives

The calendar description says: Fundamental concepts of imperative programming (procedures, statements, control structures, iteration, recursion, exceptions); basic data structures (references, records, arrays, dynamic structures); basic concepts of operating systems.

The course provides a comprehensive coverage of the fundamental imperative programming concepts. It provides students with a foundation that can be used to learn many other languages (imperative and object-oriented alike). By the end of this course students will be able to understand:

The course assumes familiarity with basic programming (as covered in either CS 1MD3 or Eng 1D04).


The following texbook will used extensively:
  1. Textbook: Gilles Dowek, Principles of Programming Languages, Springer UTiCS, ISBN: 978-1-8482-031-9.
While the next book is optional, if you need some extra Java information, it is a good source. It was used last year, and so used copies are easy to find.
  1. Java guide: Khalid A. Mughal, Torill Hamre, and Rolf W. Rasmussen. Java Actually: A Comprehensive Primer in Programming, Cengage Learning, ISBN: 978-1-84480-933-2.
We will use a style guide, to encourage good habits. For that purpose, the reference
  1. Style guide: Allen Vermeulen, Scott W. Ambler, Greg Bumgardner, Eldon Metz, Trevor Misfeldt, Jim Shur, and Patrick Thompson. The Elements of Java Style, Cambridge University Press, ISBN 978-0-521-77768-1

Course Information on Web, and Slides

The latest version of this outline, some of the hands out, and details of the assignments can be found on the course web page (Or go to my home page and then to the course page).

Announcements, assignment drop-boxes, discussion forums and other items will all be posted on Avenue to learn. It is your responsibility to check Avenue frequently for course-related information.


In-class exercises

Now and then, there will be in-class exercises. These will be worth 5% of the final grade.


There will be six assignments. The assignments will be worth 45% of the final grade.

Assignments are due at 8:30 of the morning of the weekday following the due date (so an assignment due on Friday will be picked up by the TAs at 8:30 Monday morning). You may consult outside sources, such as textbooks, web sites, as well as discussions with other students for general aspects your assignment, however all such sources must be documented. Failure to do so will result in academic dishonesty charges. The details of your assignment must be done individually.

Late assignments will be marked with a late penalty of 20% of the full grade per day (unless you provide the instructor with a Course of Action for Missed Work form delivered by the Associate Dean Office). Graded assignments and tests will be returned during tutorial sessions.

The assignments will be marked partly automatically, partly by the TAs. Any request for remarking must be first directed to the TA that has marked your assignment. After you have talked to your TA and still believe that you deserve a higher mark, then you can contact the instructor. When the instructor remarks an assignment or an exam, all the assignment/exam questions will be remarked.

If you find bugs in the automated marker (i.e. something which is marked incorrect but the prof agrees should be marked correct), you will get bonus marks.

Most assignments will contain bonus material, which you are not required to do, but can be worth significant bonus marks.

Furthermore, the total marks available on the assignments will be somewhat more than 45.


The midterm will be in T29 101, T29 105 and T28. See Avenue closer to the date for who should go to which location.

There will be one midterm exam, closed-book. It will take place on Monday, October 27 during class time, at a location to be announced later. It will cover material from the lectures, tutorials, assignments and the required textbook. It is worth 20% of the final grade.

The midterm exam consists of two parts: a set of multiple-choice questions and a few programming (written) questions. For answering the multiple-choice questions of the exam, the standard McMaster forms are used. The forms are evaluated by the McMaster Optical Scanner. The multiple-choice forms are kept by the instructor and can be viewed by student by request to the instructor.

You need to be able to write code without an IDE.

Practice questions will be available before the midterm.

Final Exam

The final examination will be scheduled by the Registrar's office in the usual way. It will be a three hours in duration and will cover the material of the lectures, tutorials, assignments, and of the required textbook. It consists of a multiple-choice part and a written part. The final exam counts for 30% of your final grade.

Policy Statements and Notes:


  1. Missed assignments or exams: You must submit appropriate documentation (e.g. note from physician) to the Associate Dean office. It is your responsibility to follow-up with the instructor. A zero will be entered for the missed work unless the instructor receives a Course of Action for Missed Work form delivered by the Associate Dean Office before submitting the final grades to the faculty.
  2. Questions on course material: ask them on Avenue, where they will be answered faster. Issues of a personal nature (relevant to the course) can be sent via email; all other questions will be answered on Avenue, even if asked via email. This way all students in the class have the same information on all items.
  3. Tutorials: Note that some material covered during the tutorials will be on the midterm and/or final.
  4. There will be bonus marks available on most assignments. There will be bonus assignments and other extra work which will count for bonus marks.
  5. A remarking request of an assignment or midterm exam is considered by the TAs and the instructor only if it is made within the two weeks that follow the return date of the majority of the concerned assignment or midterm exam.
  6. The instructor reserves the right to require a deferred exam to be oral.
  7. Calculators are not needed for this course and their use will not be permitted during exams.
  8. Material covered during class on the blackboard will show up on the midterm and exam.
  9. Suggestions on how to improve the course and the instructor's teaching methods are always welcomed.


"The Faculty of Engineering is concerned with ensuring an environment that is free of all adverse discrimination. If there is a problem that cannot be resolved by discussion among the persons concerned individuals are reminded that they should contact their Chair, the Sexual Harassment Office or the Human Rights Consultant, as soon as possible."

Course modifications

The instructor and university reserve the right to modify elements of the course during the term. The university may change the dates and deadlines for any or all courses in extreme circumstances. If either type of modification becomes necessary, reasonable notice and communication with the students will be given with explanation and the opportunity to comment on changes. It is the responsibility of the student to check their McMaster email and course websites weekly during the term and to note any changes.

Academic Dishonesty

You are expected to exhibit honesty and use ethical behaviour in all aspects of the learning process. Academic credentials you earn are rooted in principles of honesty and academic integrity.

Academic dishonesty is to knowingly act or fail to act in a way that results or could result in unearned academic credit or advantage. This behaviour can result in serious consequences, e.g. the grade of zero on an assignment, loss of credit with a notation on the transcript (notation reads: Grade of F assigned for academic dishonesty), and/or suspension or expulsion from the university.

It is your responsibility to understand what constitutes academic dishonesty. For information on the various types of academic dishonesty please refer to the Academic Integrity Policy [].

The following illustrates only three forms of academic dishonesty:

  1. Plagiarism, e.g. the submission of work that is not one’s own or for which other credit has been obtained.
  2. Improper collaboration in group work.
  3. Copying or using unauthorized aids in tests and examinations.

Individual assignments have to be solved by one person only, any outside source, this includes asking other people, or using any books or information found on the web has to be documented. In complience with the senate regulations on academic integrity I remind you that: People who let other people copy are as guilty as the ones who copy. You are allowed to consult outside sources, meaning textbooks or the web, but any use of an outside source must be documented. Similarly, group assignments must be solved by members of that group only, and the above policies apply as well.

In the case the instructor or a TA has the impression that an assignment is copied, the instructor can ask the corresponding students to explain exactly how the assignment was prepared and take appropriate actions.

Online Component

In this course we will be using some online components. Students should be aware that, when they access the electronic components of this course, private information such as first and last names, user names for McMaster e-mail accounts, and program affiliation may become apparent to all other students in the same course. The available information is dependent on the technology used. Continuation in this course will be deemed consent to this disclosure. If you have any questions or concerns about such disclosure please discuss this with the course instructor.

Providing Feedback

The instructor wants to continuously improve this course. Please provide feedback (via email, via the discussion forum, the TAs, etc) at any time.

Furthermore, the feedback received from the course evaluation is very valuable to the me, and so I am providing a course evaluation bonus to each student based on the level of class participation in the course evaluation according to the following table:
Class ParticipationBonus

September 2014