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

[booklogo]

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:

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:

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 
       *      

Maintained by Laurie J. Hendren Last modified Sat Jan 15 06:33:03 EST 2005. [HOME]
Compiler research projects: Soot, a Java analysis, optimization and transformation toolkit ---- abc, an AspectJ compiler. (AspectJ)