[21 December 2006] | See the best projects of 2006! |
Instructor: | Martin Robillard |
Time and place: | Tuesdays and Thursdays 2:35-3:55 in ENGTR 2110. |
Office hours: | Tuesdays 4:00-5:00 in MC 114N |
Credits: | 4 |
TA: | Isaac Yuen (isaac dot yuen at mail mcgill ca) |
TA availability: | Mondays 12:00-13:00 in the Trottier Lab (3060) |
In this course you will:
Why should you take this course? The success of
software projects is ensured by people who understand the
fundamental concepts of software development and 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 | 10% |
Midterm exam | 20% |
Project | 30% |
Final exam | 40% |
A mark of 50% or more for the combined project and assigments is required to pass the course, irrespective of the total final mark.
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 5 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
How to set up
your CVS Repository.
Component | Due Date |
Project Description | Not applicable |
Project 0 | Not applicable |
Project 1 | 3 Oct (23:59) |
Project 2 | 31 Oct (23:59) |
Project 3 | 30 Nov (23:59) |
Assignment 1 | 21 Nov (23:59) |
Assignment 2 | 5 Dec (23:59) |
Resources
My Checklipse style guide
Schedule
This schedule is subject to change. It is strongly recommended
to do the readings before class.
Date | Lecture Topics | Tools | Reading | Assignments and Project |
Tuesday 5 Sep | Introduction | Eclipse | Chapter 1, Eclipse Platform Technical Overview (part I only) | Start Project 0 |
Thursday 7 Sep | The Development Process | Violet, CVS | 2.1-2.12, CVS Manual - Overview | |
Tuesday 12 Sep | Class Design | 3.1-3.5 | Email your team members to the TA before class. | |
Thursday 14 Sep | Design by Contract, Unit Testing | Javadoc,JUnit | 3.6-3.7, JUnit Cookbook | |
Tuesday 19 Sep | Interface Types and Polymorphism (Part 1) | 4.1-4.6 | ||
Thursday 21 Sep | Interface Types and Polymorphism (Part 2) | 4.7-4.10 | ||
Tuesday 26 Sep | Design Patterns (Observer and Strategy) | 5.1-5.4 | ||
Thursday 28 Sep | Design Patterns (Composite and Decorator) | Checklipse | 5.5-5.8 | |
Tuesday 3 Oct | Inheritance-based reuse | 6.1-6.3 | Project 1 due (23:59) | |
Thursday 5 Oct | Class Hierarchy Design, Exceptions | 6.4-6.9 | ||
Tuesday 10 Oct | No class (Monday classes scheduled today) | |||
Thursday 12 Oct | Objects and Types | 7.1-7.3 | ||
Tuesday 17 Oct | Midterm | |||
Thursday 19 Oct | Midterm review | |||
Tuesday 24 Oct | Cloning, Serialization, and Reflection | hprof | 7.4-7.6 | |
Thursday 26 Oct | Effective Use of Generic Types | 7.5-7.6 | ||
Tuesday 31 Oct | Threads | 9.1 | Project 2 due (23:59) | |
Thursday 2 Nov | Synchronization | 9.2-9.3 | ||
Tuesday 7 Nov | Introduction to Aspect-Oriented Programming | AspectJ | Getting Started with AspectJ | |
Thursday 9 Nov | AspectJ Syntax and Semantics | Same as above | ||
Tuesday 14 Nov | Frameworks | Eclipse JDT | Chapter 8 | |
Thursday 16 Nov | Program Analysis and Reverse Engineering | ConcernMapper | ||
Tuesday 21 Nov | Review of Design Patterns | Assignment 1 due | ||
Thursday 23 Nov | The Visitor Design Pattern | 10.6 | ||
Tuesday 28 Nov | Testing and coverage | Coverlipse | ||
Thursday 30 Nov | Object-Oriented Refactoring | Eclipse Refactoring Tools | Project 3 due | |
Tuesday 5 Dec | Review for the Final | Assignment 2 due |