COMP 322 - Introduction to C++
(Winter 2010)


News Description Course facts Prerequisites Assessment Lecture notes Assignments References Academic integrity


News and announcements

March 8 

Assignment #4

 

The handout and supporting files for the final assignment are now available below. This includes a solution for Assignment #2, should you wish to use that as the basis of your work.

March 8 

Assignment #3

 

The handout and supporting files for assignment #3 are now available below.

February 20 

Assignment #1 solution

 

I've provided my solution to Assignment #1 below. Note that you may use this as the basis for your Assignment #2 submission if you prefer.

February 10 

Assignment #2

 

Assignment #2 is now available below.

February 4 

Assignment submission

 

Please submit your assignments to me via email. Please send only source code and whatever documentation you feel might be useful. You can use either my McGill email address or alternatively use rdvincent@gmail.com.

January 29 

Office hours

 

Please see the updated schedule for our regular office hours.

January 27 

Update to assignment 1

 

The source code for assignment 1 has been updated slightly. Please download the new version before completing your assignment. The only change is that the symbol EOF is now ENDOFFILE to avoid possible naming conflicts.

Slides for lecture 4 (memory management) are now available.

Finally, the bookstore informed me that they now have Stroustrup's book in stock, if anyone is interested in picking up a copy.

January 20 

Assignment 1

 

Assignment 1 is now available below.

January 6 

Welcome

 

This web page will provide all the content and announcements of the course. The first class will take place Wednesday, January 6th and we will review the course organization and begin with an overview of the history, motivation, and basic concepts of C++.

Description
C++ is a popular object-oriented programming language, originally developed at Bell Labs by Bjarne Stroustrup from 1979-1983. C++ is descended from the C programming language (Kernighan and Ritchie, 1978) and is an ancestor of the Java language (Gosling, Joy and Steele 1996). This course will cover the essential features of the C++ programming language. We will focus on the features that distinguish C++ from Java (pointers, memory allocation, templates) and C (classes, operator overloading, namespaces, exceptions). We will touch on the some of the services provided by the C++ standard library. Given the limited time available in lecture, we cannot attempt to cover every single concept of C++.

Course facts

Official Website

http://www.cs.mcgill.ca/~rvince3/322-w2010

Outline

[PDF]

Location

Trottier 0070

Time

Wednesday 3:35 - 4:25 pm

Date Range

January 6th - April 14th 2009

 

Instructor

Robert Vincent

Email

bert@cs.mcgill.ca

Office hours

Tue 2:30-4pm, or by appointment

Room

McConnell 111

 

Teaching Assistant

Onur Duman

Email

onur.duman@mail.mcgill.ca

Office hours

Fri 10-11am

Room

McConnell 322

Prerequisites
This course requires that you have already completed at least one of COMP 202, or COMP 250, or COMP 206, or COMP 208. You should be very familiar with the C programming language.

If you have not met all of these prerequisites, you should not take this course.

Assessment
Note that this evaluation method is tentative, and my be adjusted according to changing circumstances.
There will be four assignments and two short quizzes. Your final grade will be calculated from the best five of these six results, with each counting equally towards the total.
Please see the course outline for more details.

Lecture Notes

Please note that this is a tentative lecture schedule only, it may be updated as the semester progresses.

06 Jan - Lecture 1

Course introduction

13 Jan - Lecture 2

Basic language features

20 Jan - Lecture 3

Pointers and references

27 Jan - Lecture 4

Memory management

03 Feb - Lecture 5

I/O Using the Standard Library

10 Feb - Lecture 6

Classes

17 Feb - Lecture 7

Quiz #1, Overloading

24 Feb - Study Break

03 Mar - Lecture 8

Inheritance

10 Mar - Lecture 9

Inheritance continued

17 Mar - Lecture 10

Exceptions

24 Mar - Lecture 11

Templates

31 Mar - Lecture 12

Quiz #2, Templates continued

07 Apr - Lecture 13

More on the Standard Library

14 Apr - Lecture 14

Finish the Standard Library

Assignments
While you may discuss the assignments with your classmates, submitted code is assumed to be the product of individual work. Please note that scores on assignments or quizzes which are judged to violate academic integrity requirements will NOT be dropped from your final grade.

Late assignments will be penalized by 10 percent per day.

References

Standard : International Standard ISO/IEC 14882 : Programming Languages - C++.

Library : Standard Library


Academic integrity
McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see http://www.mcgill.ca/integrity  for more information).

While you may discuss the assignments with your classmates, submitted code is assumed to be the product of individual work. Please note that scores on assignments or quizzes which are judged to violate academic integrity requirements will NOT be dropped from your final grade.

Last modified 20 January 2010 (Robert Vincent).