image CPSC 310: Introduction to Software Engineering (2012/2013 Winter Term 2)

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 me if you're having trouble registering.)

People

Meghan Allen (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 is available on the DLC page.

Lectures & Labs

Section Day Time Place Instructor
Lecture Tuesdays and Thursdays 2:00pm - 3:20pm DMP 110 Meghan
Lab - L2A Thursdays 4:00pm - 6:00pm ICCS 011 Rahul
Lab - L2C Wednesdays 10:00am - 12:00pm ICCS 015 Nima
Lab - L2E Mondays 3:00pm - 5:00pm ICCS 011 Sylvie
Lab - L2F Fridays 12:00pm-2:00pm ICCS 011 Julius

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 January 7th.

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 after 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 Meghan 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.

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. 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. Within the first two weeks of class, you will be required to join a class-participation group and submit the names or each group member on an index card. I will bring the index cards to class each day and will randomly select a group after most activities so that the selected group can share their answers with the class. Each group will start with 2%. If you are not present, or decline to answer, you will lose 1% of your participation grade. If your group shares their answer but you are absent, you will lose 1%. I will also sometimes ask you to submit your in-class exercises. The remaining 3% will be based on your submissions (individually or in your groups, depending on the activity).

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 Tuesday, February 26th, during lecture
Final exam as scheduled by UBC. We usually get the schedule in February.

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

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

Positive Space

I (Meghan) am a Positive Space Resource Person. If you're not sure what that means, check out UBC's Positive Space Campaign!