EECE 310: Software Engineering (W2009, T2)

This is an past offering of this course. This course has changed considerably. Please see the ECE course guide for the new 310.

Staff Logistics Topics Announcements Lectures Assignments

Course Staff

Instructor: Karthik Pattabiraman (karthikp AT ece DOT ubc DOT ca )

TAs : Pooya Jafferian (pooya AT ece DOT ubc DOT ca)

Fahimeh Raja (fahimehr AT ece DOT ubc DOT ca )

Course Logistics

This is a third-year course on software engineering for electrical, computer and software engineering majors. The pre-requisite for this class is CPSC 260 (Object Oriented Programming Design) or equivalent. Students are expected to have strong backgrounds in object oriented and procedural programming. Prior experience with Java is helpful but not required. However, students will be expected to learn enough Java on their own for completing the assignments and the term project.

What ? When ? Where ?
Lectures Tuesdays and Thursdays (2:00 to 3:30 PM) 166 MacMillan
Karthik’s Office hours Tuesdays (4:00 PM to 5:00 PM) and Thursdays (9:00 to 10:00 AM) KAIS 4048
TAs’ Office hours Mondays (5:00 PM to 6:00 PM) KAIS 4085
Lab hours Wednesdays (5:00 to 7:00 PM) MCLD 348


  1. All course-related emails must have the words “EECE 310” in the subject, otherwise we will not respond. Please send us email only from your UBC addresses.
  2. Questions about course logistics, lectures, exams and the term project must be addressed to Karthik (see email address above)
  3. All questions regarding Java programming and/or the assignments must be addressed to the TAs. Their email addresses are shown above.

Back to top

Topics covered

We will cover the following topics in this course:

  • Modular Development: Procedures, exceptions, data abstractions, iteration and polymorphism
  • Programming in the large: Requirements analysis, writing specifications, design patterns, testing and debugging
  • Other activities: Design documentation and evaluation, quality assurance, etc.

The course syllabus is available in PDF form.

Back to top

Course announcements

Click here for course-related announcements.

Note: The above link will take you to a new blog titled EECE310. We will NOT be using WebCT to post announcements. If you like, you can subscribe to the above blog using your RSS reader (do NOT use the RSS link on top of this webpage). You are responsible for keeping up to date with announcements.

Back to top

Lectures and Schedule

(These slides are based on Prof. Kosta beznosov’s course offering last term. Also, thanks to Prof. Matei Ripeanu for his notes.)

Topic covered Date posted Lecture notes Example code
Course Orientation Jan 5th, 2010 PDF PPTX
Overview of Course Contents Jan 7th, 2010 PDF
Introduction to Java Objects Jan 12th and 19th, 2010 PDF PPTX Example1
Procedural Abstractions Jan 19th, 2010 PDF PPTX
Exceptions Jan 21st, 2010 PDF PPTX
Testing Jan 26th, 2010 PDF PPT
Project Jan 28th, 2010 PDF
Data abstraction – 1 Feb 2, 2010 PDF PPT
Data abstraction – 2 Feb 4, 2010 PDF PPT
Data abstraction – 3 Feb 11, 2010 PDF PPT
Introduction to UML Mar 2, 2010 PDF PPT
Iteration Abstraction Mar 9, 2010 PDF PPT
Iteration Abstraction 2 Mar 11, 2010 PDF PPT
Type hierarchies 1 Mar 16, 2010 PDF PPT
Type hierarchies 2 Mar 18, 2010 PDF PPT
Type hierarchies 3 Mar 23, 2010 PDF PPT
Elements of design Mar 30, 2010 PDF PPT
Design Patterns – 1 April 1, 2010 PDF PPT
Design Patterns – 2 April 6, 2010 PDF PPT
Design Patterns – 3 April 8, 2010 PDF PPT
Polymorphism April 13, 2010 PDF PPT
Final review April 15, 2010 PDF PPT

Back to top


Please see the general rules for turning in assignments here. It is your responsibility to comply with them. You can find the criteria for evaluation here.

Assignment Date posted Due Date Supporting code
Assignment 1 Jan 14th, 2010 Jan 27th, 2010 None
Assignment 2 Jan 27th, 2010 Feb 10th, 2010 None
Assignment 3 Mar 2nd, 2010 Mar 17th, 2010 None
Assignment 4 Mar 17th, 2010 Mar 31st, 2010 None
Assignment 5 Mar 31st, 2010 April 14, 2010 None

Back to top