EECE 310: Software Engineering (W2010, T1)

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 and Project

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 (12:30 to 2:00 PM) 1204 Civil Engineering
Karthik’s Office hours Tuesdays (2:00 PM to 3:00 PM) and Thursdays (9:00 to 10:00 AM) KAIS 4048
TAs’ Office hours TBD KAIS 4085
Lab hours TBD 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 here.

Back to top

Course announcements

Click here for course-related announcements.

Back to top

Lectures and Schedule

Topic covered Date posted Lecture notes Textbook Chapters
Course orientation Sep 10 Part 1 – PPT
Part 2 – PPT
Java Overview Sep 14 and 16 PPT Chapter 2
Specifications Sep 21 and 23 PPT Chapters 1, 3 and 9
Writing robust code Sep 28 and 30, Oct 5 and 7 PPT Chapters 4 and 10
Data Abstractions Oct 12 and 14, 19, 21 and 26 PPT
Polynomial example (buggy !)

Chapter 5
UML Oct 28 PPT

Iteration abstraction Nov 9th and 16th PPT

Chapter 6
Type hierarchies Nov 18th, 23rd, 25th and 30th PPT

Chapter 7
Polymorphism Dec 2nd PPT

Chapter 8

Back to top

Assignments and Project

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.

Please see this presentation for information about course projects

Assignment Date posted Due Date Supporting code
Assignment 1 Sep 21 Oct 6th or 7th*
Assignment 2 Oct 4 Oct 20th or 21st*
Assignment 3 Oct 18 Nov 10th
Assignment 4 Nov 8th Nov 24th or 25th*
Assignment 5 Nov 22nd Dec 1st or 2nd*

* The assignment is due on the date on which your lab session falls

Back to top