image CPSC 310: Introduction to Software Engineering (2014/2015 Winter Term 1)

Calendar

Course Description & Prerequisites

Introduction to Software Engineering: 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 will be able to:

Prerequisite

  1. CPSC 210 (Note, CPSC 211 is also an acceptable pre-req although the SSC may display a warning. Please email undergrad-info AT cs DOT ubc DOT ca if you're having trouble registering.)

People

Marc Palyart (Instructor)

I will also see students outside of scheduled office hours – email me if you would like to schedule an appointment to speak to me. If you send me emails regarding course content, I will post your question on the discussion forum so that other students can see it and my answer.

TAs

The schedule for TA office hours will soon be available on the DLC page.

Lectures & Labs

Section Day Time Place Instructor
Lecture Mon/Wed/Fri 10:00am - 10:50am DMP 310 Marc
Lab - L1A Friday 11:00am - 1:00pm ICCS 008 TA: David
Lab - L1B Tuesdays 11:00am - 1:00pm ICCS 008 TA: Giovanni
Lab - L1D Wed 11:00am - 1:00pm ICCS 008 TA: Kevin
Lab - L1F Thursday 2:00pm-4:00pm ICCS 008 TA: Andrew
Lab - L1G Tuesday 3:30pm-5:30pm ICCS 008 TA: Nowrin
Lab - L1J Friday 1:00pm-3:00pm ICCS 008 TA: Tim

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. The first labs start the week of September 8th.

Course Resources

Textbook

There is no required textbook for the course. Lectures, labs and assigned readings will contain all information covered by the exams. You will often be given an assigned reading from an available online resource.

Lecture material

Lecture slides and other material will be posted 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 CS310 group by logging into Piazza with a cs.ubc.ca or ubc.ca email address. If you have not used Piazza before, you will need to create a new account.

Please note that Piazza is a service that is hosted in the United States. (It is a startup that originated at Stanford University.) Some of you may wish to preserve your anonymity on Piazza, so that none of your personal information is stored in the United States. You are free to do this simply by creating a new anonymous email account and joining Piazza using that anonymous email account. (If you already use a gmail, hotmail or other US hosted email account this is essentially moot.) If you do choose to join Piazza with an anonymous account then please send Marc a private email message stating the anonymous email account you joined with Piazza with. I don't think that you can join the course yourself unless you use a .ubc.ca address, but if you let me know which anonymous address you used to join Piazza, I will add you to the course.

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. In addition, lab attendance is mandatory and you will lose 1% of your overall grade (up to 5%) for each lab that is missed without an acceptable reason (e.g. illness).

Component Value
Final Exam 40%
Project 35%
Midterm 20%
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. (I reserve the right to change the grading formula during the term).

The 5% of your grade allocated to participation will be based on in-lecture activities. For some of these activities you will receive credit simply for participating, so in-class attendance is necessary to receive the credit and is highly recommended. In addition the number of questions from your classmates that you answer on Piazza will be taken into account

Grade disputes

Posting grades

Grades will be posted regularly via Connect.

Late policy

Assignments will be due at a specific time, typically via handin or in lab. If you are not prepared for a lab it makes it very difficult to complete the remainder of the project. Although you will have to complete your assignment so that you can continue working on the project, assignments that are not completed by the due date and time will be worth 0. There will not be any extensions.

Examinations

There will be a midterm and a final examination.

Midterm October 24th, during lecture
Final exam December 8th, 7pm

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 be geared towards 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. You must also obtain a passing grade on the two major sprints in order to 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 will be able to:

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

General Advice

Accommodation

Academic Conduct

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

Respectful Environment

Everyone involved with CPSC 310 is responsible for understanding and abiding by the University's Respectful Environment Statement.

The Statement of Principle of UBC's Respectful Environment Statement is "The best possible environment for working, learning and living is one in which respect, civility, diversity, opportunity and inclusion are valued. Everyone at the University of British Columbia is expected to conduct themselves in a manner that upholds these principles in all communications and interactions with fellow UBC community members and the public in all University-related settings."