image CPSC 310 Software Engineering: A practical introduction (2012 Winter Term 2)

Course Description & Prerequisites

Introduction to Software Development: Specification, design, implementation and maintenance of large, multi-module software systems. Principles, techniques, methodologies and tools for computer aided software engineering (CASE); human-computer interfaces, reactive systems, hardware-software interfaces and distributed applications.

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

Prerequisite: Either

  1. all of CPSC 213, CPSC 221 or
  2. one of CPSC 210, CPSC 211 and all of CPSC 213, CPSC 260, EECE 320.

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

There will be a TA office hour from 2 pm - 3 pm Fridays in the Demco Learning Centre with Kevin.

Lectures & Labs

Section Day Time Place Instructor
Lecture TR 1400–1530 DMP 110 Neil Ernst
L2E M 15–17 ICCS 011 Albert
L2C W 10–12 ICCS 015 Felix
L2A R 16–18 ICCS 011 Kevin
L2F F 12–14 ICCS 011 Felix
TA hr F 14–15 Demco Kevin

Labs are an important part of this course. Labs will provide you with the practical knowledge and skills required for the completion of your course assignments. Each lab is designed to give you the opportunity to meet and work as a group, and attendance is mandatory.

Each lab session is supervised by a teaching assistant (TA), who will introduce the necessary tools, provide instructions for the projects, answer questions and meet with each group to discuss the progress of the project.

There will be no labs in the first week. There is a first assignment, due by the start of your second lab (the week of January 16th), which will help to ensure that you have access to the appropriate computing resources for the course.

Course Resources

Textbook

There is no required textbook for the course. Lectures, labs and assigned readings will contain all information on the exams. Each week you will be given an assigned reading from an available online resource.

Lecture material

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

Clickers

You will need to obtain a clicker from the Bookstore, or a friend. Here is the bookstore link. Be sure to register your clicker with WebCT/Vista.

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. Participation in the forum is part of your mark. 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 CS310 group by logging into Piazza with a cs.ubc.ca or ubc.ca email address.

Watch the 2 minute introduction video to learn how Piazza is designed to get you answers fast: video link

Project Resources

See the project page

Evaluation

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

Component Value
Final Exam 30%
Project 35%
Midterm #1 15%
Midterm #2 15%
Participation 5%

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).

The participation mark is easy to achieve. You will get full marks for good lab attendance; good group participation, as determined by your peers; engaged forum participation; and engaged class participation.

Grade disputes

Posting grades

Grades will be posted regularly via WebCT/Vista.

Late policy

Assignments will be due at a specific time, typically in your lab. If you are not prepared for the lab it makes it very difficult to complete the remainder of the project. Failing to hand anything in will result in a mark of 0.

Examinations

There will be two midterms and a final examination.

Midterm #1 Feb 2
Midterm #2 Mar 8 (tent.)
Final exam Apr 11 - 21

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

Labs and Project

There will be a large, semester-long group project, using an ‘agile-like’ approach. Deliverables will be broken into several milestones, including two major sprints. Assignments will generally be geared toward the completion of the project.

The submission procedure will be clearly specified in each assignment.

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

The following is a tentative list of the objectives of this course by topic. When you complete this course, you should be able to:

  1. Process
  2. Requirements
  3. Design
  4. Implementation
  5. Testing
  6. Intellectual Property

General Advice

Accommodation

Academic Conduct

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