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 | Instructions | Topics | Lectures | Assignments |
Course Staff
Instructor: Karthik Pattabiraman (karthikp AT ece DOT ubc DOT ca )
TAs : Frolin Ocariza Jr.(focarizajr AT yahoo DOT com)
Anna Thomas (annathomas87@gmail.com)
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 pick up Java on their own for the assignments.Here is a useful reference for learning Java.
What ? | When ? | Where ? |
---|---|---|
Lectures | Tuesdays and Thursdays (2:00 to 3:30 PM) | MCLD 242 |
Karthik’s Office hours | Tuesdays (1:00 PM to 1:45 PM) | KAIS 4048 |
Lab hours | Wednesday (5 to 7 PM)/Thursday (11-1PM) | MCLD 348 |
Instructions
- All course-related questions must be posted on the Piazza.com website for this course. We will not respond to course questions through email. Please sign up for this class on Piazza.
- For all other questions that are specific to your situation, you can email us provided you include EECE310 in your subject. Otherwise, your email may get lost and we will not reply.
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, concurrent programming, testing and debugging
- Other activities: Design and evaluation, quality assurance, etc.
The course syllabus is available in here.
Lectures and Schedule
Topic covered | Date posted | Lecture notes | Textbook Chapters |
---|---|---|---|
Course orientation | Jan 5 | PPT | |
Motivation | Jan 5 | PPTX | |
Java Objects | Jan 10, 12 | PPT | Chapter 2 |
Specifications | Jan 12, 17 | PPT | Chaps 3 and 9 |
Robust Code | Jan 24, 26, 31 | PPT | Chaps 4 and 10 | JML | Feb 2 | PPT | – |
Data Abstractions | Feb 7, 9, 14 and 16 | PPT | Chap 5 |
Concurrent Programming | Mar 6, 8 and 13 | PPT | – |
Iteration Abstraction | Mar 13, 15 | PPT | Chapter 6 |
Type hierarchy | Mar 20, 22, 29, 3 | PPT | Chapter 7 |
Final review | Apr 5 | PPTX | – |
Assignments and Labs
Note: Labs are not graded, but are meant to help you prepare for the assignments. You are strongly encouraged to try the labs before trying the assignments.
You can find the submission instructions for the assignments here.
Assignment/Lab | Date posted | Due Date | Supporting code |
---|---|---|---|
Lab 1 | Jan 9 | – | Code |
Assignment 1 | Jan 16 | Feb 1 or 2* | Code |
Lab 2 | Jan 26 | – | None |
Assignment 2 | Feb 2 | Feb 15 or 16* | Code |
Lab 3 | Feb 9 | – | None |
Assignment 3 | Feb 16 | Mar 7 or 8* | Code |
Lab 4 | Mar 1 | – | None |
Assignment 4 | Mar 8 | Mar 21 or 22* | Code |
Assignment 5 | Mar 22 | Apr 4 or 5* | Code |
* The assignment is due on the date on which your lab session falls.
Back to top