image CPSC 410 Advanced Software Engineering (2012 Winter Term 2)

Disclaimer: this syllabus is subject to change between now and start of class. I wanted to get something up for you to prepare.

Course Description & Prerequisites

Specification, design, construction and validation of multi-version software systems.

When you complete this course, you should be able to:

Prerequisite: Either

  1. CSC 310 or
  2. both EECE 310 and EECE 315.

People

Neil Ernst (Instructor)

I will also see students outside of these times – email me if you would like to schedule an appointment to speak to me. Note that I will not normally respond to email questions other than appointment requests, unless it is an emergency. If you send me questions by email between lectures, I will provide answers or clarifications in the lectures (rather than by responding by email). I reserve the right to post your course-related questions on the discussion forum so that other students can see it.

TAs

Lectures & TA Office Hours

Section Day Time Place Instructor
Lecture MWF 1100–1200 DMP 110 Neil Ernst
Office hours M 1500–1600 ICICS 339 Neil Ernst
TA Office Hours TBA

Course Resources

Textbook

Lecture material

Lecture slides and other material will be posted immediately before lecture on the lectures page.

Piazza forum

The discussion forum is hosted at Piazza.com. The forum is required reading as the instructor and TAs will post important information and updates there. Please check it, as this is the official communication channel in the event of cancelled classes or labs, rescheduled deadlines, and so on. In addition, you are encouraged to post your questions about the course material on the course bulletin board. You are also encouraged to respond to questions for which you know the answer. In case you need a face-to-face discussion, you can bring you questions regarding the course material, assignments, project and labs to:

Please join the CS410 group by logging into Piazza with a cs.ubc.ca or ubc.ca email address. Watch the 2 minute introduction video.

Project Resources

See the project page.

Evaluation

Your grade in this course will be based on exams and a project, as shown in the table below.

Component Value
Final Exam 30%
Project 40%
Midterm 30%

To pass this course, you must obtain a 50% overall mark and, in addition, you must:

Students who fail the project or the final exam will be assigned as the final grade in the course the minimum of 45% (an F) and the grade computed using the above formula. (This distribution may change prior to start of term).

Part of the project mark will be an in-class presentation of approximately 5 minutes, with your group.

Grade disputes

Posting grades

Grades will be posted regularly via Connect. Note, this is a new system for this semester and is not the same as WebCT or Vista.

Late policy

Assignments will be due at a specific time. Failing to hand anything in will result in a mark of 0.

Examinations

There will be a midterm and a final examination.

Type Date/Time
Midterm Oct 10
Final exam Dec 5–19

Note that the final is scheduled by the University. Do not make travel plans until the final exam schedule is released.

Project

There will be a large, semester-long group project.

At a minimum you need a good facility with Java as well as Eclipse. If you have the time, you might be well-served to read up on Javascript. You can take introductory courses in a number of places online, e.g., CodeAcademy. I also recommend the book Javascript: The Good Parts.

We will use Git and Github for our project management infrastructure. You will need a Github user account (if you have an objection to using Github please let me know). Good help is available here.

Your projects are group work, but no inter-group communication about projects is permitted unless explicitly noted in the assignment description.

Note that the project is a mandatory component of this course. You must obtain a passing grade in the project in order to pass the course.

Course Objectives

When you complete this course, you should be able to:

  1. Software Architecture
  2. Software Verification

General Advice

Accommodation

Academic Conduct

Each student is responsible for understanding and abiding by the University and Departmental policies on academic conduct. Specifically: