COMP 303 Programming Techniques
(Winter 2005)
This web page has been updated for Winter 2005, but it will change
throughout the term, so be sure to visit it often for updates.
|
Announcements
- April 21: Unclaimed assignments and midterms will be available in my office, McConnell 228, on Friday April 22, 10:00 - 16:00.
- April 19: REMINDER: Final Exam on Tuesday, April 26 at 14:00, in Wong 1030. The exam is closed book.
- April 14: Links to Martin Robilliard's FEAT lecture and intro to AspectJ slides added.
- April 6: Quick reminder that entries for the fastest simulator and best AspectJ code should be sent to hendren AT cs DOT mcgill DOT ca. Please
put a meangingful title for your message. Submissions due tomorrow, April 7,
by midnight. You should submit your ant using the directions for phase 5 of
the project.
- April 6: See details of McACM's AI CodeBlitz 2005
here .
- March 24: Details for phase #5 of the project is now available. Due at the beginning of class on Thursday, April 7.
- March 24:
Assignment #3 posted. Due at the beginning of class, Thursday, March 31.
- March 17: Directions for phase #4 is posted, due March 24.
- March 8: New AspectJ resources page, see
http://www.sable.mcgill.ca/~hendren/AspectJ.html
- Feb 15: Remember the midterm, Tuesday March 1. Please be in
class at 2:30 so we can have a full 90 minutes. Midterm is closed-book.
Covers all material up to the study break including material
from lectures, readings, assignments and course project.
- Feb 3: Assignment #2 posted. Due on Feb 10.
- Jan 30: Details for phase #2 of project now posted. A preliminary version of details for phase #3 is also available.
- Jan 26: Assignment #1 Solutions posted
here . Please note that this
is password protected. Account name and password will be given in class.
- Jan 23: See Project box below for dates for all project milestones and detailed directions for phase #1. Phase #1 due Thursday, Feb 3, at the
begining of class.
- Jan 18:
The School will be holding an important information session on applying to
Graduate Studies and the Summer 2005 NSERC award. If you are interested in
either of these subjects, it would be to your benefit to attend. Pizza will
be served before the session begins.
Date: Monday, January 24, 2005
Pizza 5:30-6:00, Place: Trottier Lobby 2nd floor
Information session 6:00-7:30 Place: Trottier Room 0100
- Jan 14: Assignment #1 is posted , due Thursday, January 20
- Jan 14: If you are not already very familiar with Unix, then you
should attend the Unix seminars. More information at:
http://www.cs.mcgill.ca/socsinfo/seminars/
. For this course the intermediate and advanced
levels are appropriate.
- Jan 14: If you are thinking about graduate studies, you might
consider applying for a summer NSERC fellowship. The requirements are
here . You must find a professor to
help you propose a project. I am interested in students who would do
some research on aspect-oriented programming, focusing on benchmarks
for aspect-oriented research. If you are interested, please see me
after class or during my office hours. The deadline for applications is
February 1, 2005.
|
|
About this course
Time: Tuesdays and Thursdays, 2:35-3:55
Place: Trottier 0070
Course Outline (html)
(postscript)
(pdf)
|
People
Lecturer - Professor Laurie Hendren
Teaching assistants
|
Java Resources
Java Documentation
JDK/SDK at SOCS and at home
|
AspectJ Resources
|
Required Textbook
|
Links for Tools
|
Project
Prizes:
- Fastest Simulator
- Best Ant (using ICFP competition rules)
- Best GUI
- Best use of AspectJ
|
Deadlines and Important Dates
- Assignment #1: Thursday, January 20, due at beginning of class.
- Project Phase #1: Thursday Feb 3, in class.
- Assignment #2: Thursday, Feb 10, due at beginning of class.
- Project Phase #2: Thursday Feb 17, at beginning of class.
- Midterm: Tuesday, March 1, in class.
- Project Phase #3: Thursday March 10, at beginning of class.
- Project Phase #4: Thursday March 24, at beginning of class.
- Assignment #3: Thursday, March 31, due at beginning of class.
- Project Phase #5: Thursday April 7, at beginning of class.
|
Week by week
(Please note that this is the first time I am teaching this course, so the
schedule may shift slightly as the course progresses. However, the schedule below
shows the intended topics and the general schedule.)
|
|
Week 1: Introduction
January 2005
S M Tu W Th F S
2 3 4 5 6 7 8
*
Course Outline
((html),
(ps) (pdf) )
Course introduction
Tool: javadoc
Reading:
|
Week 2: The OO Design Process
January 2005
S M Tu W Th F S
9 10 11 12 13 14 15
* *
Tool: subversion
Reading:
|
Week 3: Class Design
January 2005
S M Tu W Th F S
16 17 18 19 20 21 22
* *
Tool: JUnit
Reading:
|
Week 4: Interface Types and Polymorphism
January 2005
S M Tu W Th F S
23 24 25 26 27 28 29
* *
Tool: ant
Reading:
|
Week 5: Patterns and GUI Programming
February 2005
S M Tu W Th F S
30 31 1 2 3 4 5
* *
Tools: profiling using hprof and HPjmeter
Reading:
|
Week 6: Inheritance and Abstract Classes
February 2005
S M Tu W Th F S
6 7 8 9 10 11 12
* *
Tools: obfuscating using yGuard and formatting using jalopy
Reading:
|
Week 7: Java Object Model
February 2005
S M Tu W Th F S
13 14 15 16 17 18 19
* *
Reading:
- Horstmann, Chapter 7
- Slides based on book
|
Study Break
February 2003
S M Tu W Th F S
20 21 22 23 24 25 26
|
Week 8: Midterm and Frameworks
March 2005
S M Tu W Th F S
27 28 1 2 3 4 5
** *
Midterm, March 1 (in class, closed book)
Reading:
- Horstmann, Chapter 8
- Slides based on book
|
Week 9: Introduction to AspectJ
March 2005
S M Tu W Th F S
6 7 8 9 10 11 12
* *
Reading:
|
Week 10: Project Meetings with TA, no classes
March 2005
S M Tu W Th F S
13 14 15 16 17 18 19
|
Week 11: Concern Tools
March 2005
S M Tu W Th F S
20 21 22 23 24 25 26
* *
Reading:
|
Week 12: Advanced Aspects (I)
March/April 2005
S M Tu W Th F S
27 28 29 30 31 1 2
* *
Reading:
|
Week 13: Advanced Aspects (II)
April 2005
S M Tu W Th F S
3 4 5 6 7 8 9
* *
Reading:
|
Week 14: Review for Final Exam
April 2005
S M Tu W Th F S
10 11 12 13 14 15 16
*
|