[7 December 2005] | The final exam will be held Thursday 8 December 9:00-12:00 in Trottier 1080. |
[17 November 2005] | Code examples for lecture 21. |
[2 November 2005] | Assignment 3 is released. |
[25 October 2005] | Updates to the project 3 page. The final changes to the project deliverable have been posted. |
[21 October 2005] | I will hold a special pre-midterm office hours session Monday 24 October at 4:15pm in my office. |
[11 October 2005] | Project (Component 3) is released. |
[7 October 2005] | Assignment 2 is released. |
[3 October 2005] | Project 2 due date is now 12 October, 11:59am. |
[2 October 2005] | You're welcome to use my Checklipse configuration file. |
[25 September 2005] | Small reorganization of the topic schedule. |
[20 September 2005] | Project (Component 2) is released. |
[15 September 2005] | Assignments and projects should be submitted using WebCT. Note that this changes the hand-in instructions for Assignment 1. |
[2 September 2005] | Project (Component 1) is released. |
[1 September 2005] | Assignment 1 is released. |
Instructor: | Martin Robillard |
Time and place: | Tuesdays and Thursdays 2:35-3:55 in Trottier 0070. |
Office hours: | Tuesdays 4:15-5:15pm in MC114N |
Credits: | 4 |
TA: | Imran Majid |
TA availability: | Mondays 11-12 and Wednesdays 12-1 in Trottier 3rd floor lab. |
In this course you will:
Why should you take this course? In the end the
success of software projects is ensured by people. People who
understand the fundamental concepts of software development and
who master the techniques that are derived from them. People
who can make informed decisions that positively impact the quality of
software, and who play a role of technical leadership in highly
dynamic and innovative software development environments. This
course is intended to point you in that direction.
Reference Material
Required Textbook: Horstmann,
Cay. Object-Oriented Design and Patterns, 2nd Edition. Wiley,
2005. Available at the Paragraphe Bookstore.
Evaluation
Assignments | 15% |
Midterm exam | 20% |
Project | 30% |
Final exam | 35% |
The following material is subject to evaluation: Anything I said in class, material found in the mandatory reading, basic knowledge of the tools covered in the course, anything you did in the project and assignments. The midterm will cover all lectures up to and including 20 October. The final will cover everything.
Academic 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).
Project and Assignments
Component | Due Date |
Assignment 1 | September 20 |
Assignment 2 | November 8 |
Assignment 3 | November 29 |
Project Description | Not applicable |
Project Component 1 | September 22 |
Project Component 2 | October 12 |
Project Component 3 | November 12 |
Date | Lecture Topics | Tools | Reading | Assignments and Project |
1 Sep | Introduction. | Eclipse | Chapter 1, Eclipse Platform Technical Overview (part I only) | Familiarize yourself with Eclipse. |
6 Sep | The Object-Oriented Design Process | 2.1-2.7 | ||
8 Sep | Introduction to the Unified Modeling Language | Violet, CVS | 2.8-2.12, CVS Manual - Overview | Setup your CVS repository |
13 Sep | Class Design | 3.1-3.5 | ||
15 Sep | Design by Contract, Unit Testing | Javadoc,JUnit | 3.6-3.7, JUnit Cookbook | |
20 Sep | Interface Types and Polymorphism (Part 1) | 4.1-4.6 | Assignment 1 due | |
22 Sep | Interface Types and Polymorphism (Part 2) | 4.7-4.10 | Project 1 due | |
27 Sep | Design Patterns (Observer and Strategy) | 5.1-5.4 | ||
29 Sep | Design Patterns (Composite and Decorator) | Checklipse | 5.5-5.8 | |
4 Oct | Inheritance-based reuse | 6.1-6.3 | ||
6 Oct | Class Hierarchy Design, Exceptions | 6.4-6.9 | ||
11 Oct | Introduction to Aspect-Oriented Programming | AspectJ | Getting Started with AspectJ | Project 2 due tomorrow |
13 Oct | AspectJ Syntax and Semantics | Same as above | ||
18 Oct | The Java Object Model (Part 1) | hprof | 7.1-7.4 | |
20 Oct | The Java Object Model (Part 2) | 7.5-7.6 | ||
25 Oct | Midterm | |||
27 Oct | Midterm Review | |||
1 Nov | Generics and components | 7.7-7.8 | ||
3 Nov | Frameworks | Eclipse JDT | Chapter 8 | |
8 Nov | Threads | 9.1 | Assignment 2 due | |
10 Nov | Synchronization | 9.2-9.3 | ||
15 Nov | Program Analysis and Reverse Engineering | ConcernMapper | ||
17 Nov | Review of Design Patterns | |||
22 Nov | The Visitor Design Pattern | |||
24 Nov | Object-Oriented Refactoring | Eclipse Refactoring Tools | Project 3 due | |
29 Nov | Review for the Final | Assignment 3 due |