December 5, 2011: The exam will be Thursday December 8, 2011 at 9am. It is open-book (no electronics). Room locations depend on your last name and are as follows:
December 5, 2011: Note: Clark's office hours this week will be Tuesday 9:30-11:00 and Wednesday 11:30-13:00.
December 2, 2011: There are some additional TA office hours if you have questions while studying for the exam: November 29, 2011: Note: Clark's office hours this week will be Wednesday 9:00-11:00 and Thursday 14:30-16:00.
November 16, 2011: Milestone 3 posted.
October 26, 2011: Midterm today!!
October 26, 2011: Milestone 2 posted.
October 19, 2011: All TA office hours will from now on be in Trottier 3110.
October 11, 2011: Note that Wisam's office hours are cancelled from October 12-22 (inclusive).
October 7, 2011: The tentative exam schedule has been posted. The COMP303 is currently indicated to be (Thursday) December 8, 2011, at 9am.
September 22, 2011: Milestone 1 posted. For group svn directories please see moodle.
September 21, 2011: Project stub code posted.
September 12, 2011: Milestone 0 posted.


Time and Place

Monday, Wednesday: 11:35 - 12:55
MAASS 217
Please consult Minerva for the most up-to-date scheduling & classroom location information.

Instructor

Clark Verbrugge
Office: McConnell, room 230
Office hours (starting Sept.7): Wednesday 14:00-15:30, Friday 10:00-11:30, or by appointment.
Phone: 514-398-2411 but don't call me, use email
Email: clump@cs.mcgill.ca

Teaching Assistants

All TA office hours are now held in Trottier 3110.
Ben Kybartas: Tuesday 11:30-13:00, Thursday 13:00-14:30
Juan Camilo Gamboa Higuera: Tuesday 13:00-14:30, Friday 13:00-14:30
Wisam Al Abed: Monday 10:15-11:15, Wednesday 10:15-11:15, Thursday 12:00-13:00 (except Oct.12-22)
Tim Drews: Monday 17:00-18:30, Thursday 16:00-17:30
Zhen Cao: By appointment

Pre-requisites

COMP 206 (Introduction to Software Systems).
COMP 250 (Introduction to Computer Science).
Note: students registering without the pre-requisites may find the course removed from their transcript by their Faculty. If you do not have the official pre-requisites please see the instructor.

Text

Reference material is available in the following texts: Texts will be available in the McGill Bookstore and on reserve at the Schülich library.

Course Overview/Objectives

Principles, mechanisms, techniques, and tools for software development. The course involves a significant project.

The learning outcomes for this course are organized along the four main conceptual axes of the course: principles, mechanisms, techniques, and tools. The following table lists the expected learning outcomes for the course (the table reads by row, from left to right).

After this course, you should be able to...

PrinciplesMechanismsTechniquesTools
Name, using the proper terminology The important first principles of object-oriented software developmentThe common programming-language based mechanisms used to build OO software applicationsCommon software development techniquesA number of software development tools
Describe and explainThe purpose of each principle and how it can be appliedHow each mechanism worksHow to apply each technique and when it should be appliedThe theory underlying each tool, and the technique(s) the tool supports
ApplyEach principleEach mechanismEach techniqueEach tool
EvaluateWhether the application of a principle is appropriate to a given situationThe technical consequences of a solution involving the mechanismThe cost and benefits of using the technique in a given situationThe suitability of different tools for a given task
CreateA complete object-oriented application based on the first principles of object-oriented software development, the structured use of programming language mechanisms, the application of software development techniques, and the use of software engineering tools

Course Syllabus

A detailed syllabus can be found here.

Evaluation

Project: 35%
Midterm: 25%
Exam: 40%
In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

Integrity

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

More specifically, work submitted for this course must represent your own efforts. Copying assignments or tests, or allowing others to copy your work, will not be tolerated. Note that introducing syntactic changes into a copied program is still considered plagiarism.

Course Resources

Project

The project will involve the development of an interactive Mahjong Solitaire game in Java.

Additional links will appear here as additional instructions are released. To get an idea of what you will be developing as a project have a look at the best projects from 2010, 2009, 2008, 2007, and 2006.

Project Resources

Submission Policy: Milestones are assigned to groups: only one submission per group is necessary. Deadlines are given above. All deadlines are firm. This is to ensure fairness, a speedy feedback, and consistency with the course schedule. Please plan ahead. Note that submissions are due at 6pm, not midnight!
If you are not done by the deadline, submit your partial solution. Moodle allows you to update your draft uploads. To avoid the usual issues with last-minute submissions, you are encouraged to submit early. The Moodle system will block submissions once the submission deadline is reached. Milestones not submitted on time will be considered missed and receive a grade of 0.