Instructor: Richard Vaughan
Schedule - Spring 2018Lab submission schedule to be discussed in class before being published here.
Labs are held in CSIL's main room (ASB 9838) at these times:
Vaughan and two TAs are available in lab hours.
TAs are also available in CSIL 9838 or 9840 at the times shown on the calendar below. The calendar also shows holidays, reading break, etc.
TA times are TBD and will appear here soon.
Instructor office hours:
This class will teach you the basics of programming in C and C++, with an emphasis on program design and testing. We will use the standard UNIX command-line build and version control tools.
The class is intended to be taken simultaneously with CMPT 125, and the material is closely synchronized.
More than most modern languages, learning C helps/forces you to understand how the computer and operating system works. C was designed as a system-programming language, so it is small, works everywhere, and (when well-written) can be very high-performance. However, it is very easy to write bugs in C code. You will learn strategies for testing and debugging, but most of all we will discuss approaches for writing correct and well-designed code in the first place. You can learn C in a semester, but becoming expert takes longer.
Assignments == lab tasks
This class consists of ten labs plus a simple warmup Lab 0. Labs are issued to you every tuesday starting from Week 2 of the semester. Each lab contains several tasks, small assignments that are submitted individually.
You submit your code solutions to an online version control system, and they are automatically tested. You may submit solutions at any time, and you may make multiple attempts.
Lab tasks before the midnight following the last day of classes, that is, your entire repo at the moment of the deadline will be graded.
This means that:
Your grade will depend on how many tasks you solve correctly. The tasks are currently being revised and a grading scheme will be published here soon.
Procedure for getting help:
Restricted to enrolled students. Labs are set weekly, and content may change up to a lab's release day.