| 
 
| 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 courseTime: Tuesdays and Thursdays, 2:35-3:55Place: Trottier 0070
 Course Outline  (html) 
                (postscript)  
                (pdf)
 
 | PeopleLecturer - Professor Laurie HendrenTeaching assistants
 
 
 | 
| Java Resources Java DocumentationJDK/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:   subversionReading:
 
 | 
| Week 3: Class Design 
    January 2005
 S  M Tu  W Th  F  S
16 17 18 19 20 21 22 
       *     *
Tool:  JUnitReading:
 
 | Week 4: Interface Types and Polymorphism
    January 2005
 S  M Tu  W Th  F  S
23 24 25 26 27 28 29 
      *     *
Tool:  antReading:
 | 
| 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 HPjmeterReading:
 | 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 jalopyReading:
 | 
| 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 
       *      
 |