Welcome to CMPT 125 Summer 2012!

This course is a continuation of CMPT 130 (also CMPT 120 at Surrey when 120 is taught in C), and introduces new programming techniques and computer science ideas. It uses the C++ language in the Linux environment.

Lectures

Weekly lecture: 2:30pm to 3:30pm every Monday, Wednesday, and Friday in room 5080 (Surrey). You should attend every lecture. If you miss a lecture, then it is your responsibility to find out what you missed.

The lectures follow the schedule below.

Office Hours and Email

The teaching assistant (TA) is:

The course instructor is Toby Donaldson (tjd@sfu.ca). Feel free to email him any time to ask questions. His office hours are every Monday, Wednesday, and Friday from 11:30am to 12:20pm, and 1pm to 2pm in room 4108 (Surrey).

Sometimes we will send you email via the course mailing list. Check the 125 mailing list archive if you miss a message.

Please note that while we try to answer email as quickly as possible, we can’t promise immediate responses.

Weekly Labs

Weekly labs are from 12:30pm to 2:30pm, and 1:30pm to 2:30pm every Friday in room 4080 (Surrey). You should attend every lab. Some labs may cover specific course topics. If you miss a lab, then it is your responsibility to find out what you missed.

There are no labs (tutorials) in the first week of classes!

Here is a tentative list of lab topics:

  • Lab 1: Friday May 18th
    • Using Linux: the command-shell, editing text files, compiling C++ programs with g++ and make.
  • Lab 2: Friday May 25th
    • Open lab: help with assignments.
  • Lab 3: Friday June 1st
    • Debugging tips and techniques 1: using print statements and assertions to deal with errors.
  • Lab 4: Friday June 8th
    • Open lab: help with assignments.
  • Lab 5: Friday June 15th
    • Midterm exam last-minute preparation.
  • Lab 6: Friday June 22nd
    • Debugging tips and techniques 2: using the GDB debugger in Linux.
  • Lab 7: Friday June 29th
    • Open lab: help with assignments.
  • Lab 8: Friday July 6th
    • Debugging tips and techniques 3: using valgrind on Linux.
  • Lab 9: Friday July 13th
    • Open lab: help with assignments.
  • Lab 10: Friday July 20th
    • Open lab: help with assignments.
  • Lab 11: Friday July 27th
    • Open lab: help with assignments.
  • Lab 12: Friday August 3rd
    • Final exam prep and assignment marking issues.

Textbook

The required textbook for this course is Programming, Principles and Practice Using C++, by Bjarne Stroustrup (the creator of C++).

Lecture notes and assignment questions may be taken directly from the book, so you should have your own copy. Plus, the book has a lot of reference material, making it a useful resource for any later C++ programming you might do.

Marking Scheme

Note

Students must attain an overall passing grade on the weighted average of exams in the course in order to obtain a clear pass (C or better). The Grading FAQ explains what this means in more detail.

Your marks will be recorded in the on-line gradebook.

The Grading FAQ has answers to many commonly asked questions about final grades and how they may be calculated.

Ethics

All students in this course are expected to follow a few basic rules of ethical conduct:

  • As a member of the Simon Fraser University community, you are bound by its Code of Academic Integrity and Good Conduct. Read it!
  • Unless explicitly stated otherwise, all assignments and assessed activities must be your own original work. You must cite any help you get, whether it be from people (friends, TAs, instructors, your uncle who works at Microsoft), or from books, websites, magazines, and so on.
  • You may of course work with others in an effort to understand the material, but you are responsible for mastering and understanding everything yourself.
  • You may not share your assignments with other students in the course or not in the course. For instance, we consider it dishonest if you let another student read a program you have written, e.g. giving a friend a copy of your program so they can learn from it is not acceptable in this course.
  • If you get the help of a tutor or assistant (e.g. someone who answers a question you ask on a web forum), or an academic assistance service of any kind, you must provide the following information:
    • Contact information.
    • A brief description of the nature of the assistance.
    • Copies of all materials given to the assistant.
    • Copies of all materials returned by the assistant.
  • Markers may sometimes use software to check for suspicious assignments. Such programs simply flag suspicious files, and the marker will then manually investigate further to determine if any copying has occurred.
  • Assignment extensions or deferrals are usually only granted for medical or compassionate reasons. For instance, we need a doctor’s note confirming that you are so unwell as to need an extension. A note that merely says you visited a doctor is not usually good enough.

Notes

Table Of Contents

Next topic

Assignment 1

This Page