CMPUT 301

Software Engineering

CMPUT 301 Course Fall 2021

CMPUT 301 Course Outline

General Information

Term: Fall 2021 Number of credits: 3 credits

Lecture (E)A1 Date and Time: Monday-Wednesday-Friday 11:00-11:50 MT Location: CCIS L2-190

Labs start in the second week of classes.

Lab (E)D01 Date and Time: Tuesday 17:00-19:50 Location: CSC B-10

Lab (E)D03

Date and Time: Wednesday 17:00-19:50 Location: CSC B-02

Lab (E)D04

Date and Time: Thursday 17:00-19:50 Location: NRE 2-003

See Contact Information for details about your instructor and teaching assistants.

Policy about course outlines can be found in Course Requirements, Evaluations Procedures and Grading of the University Calendar.

This statement is required verbatim, as per Calendar regulations.

Disclaimer: Any errors in this Course Outline and Course Policy are subject to change and will be announced in class. The date of the final examination is set by the Registrar and takes precedence over the final examination date reported in this syllabus.

Overview

As an introduction to software engineering, this course is about building software effectively. You will apply good practices, effective design techniques, and development tools within a team project to create an application with a graphical user interface.

The focus is largely practical, with broad coverage in topics such as: object-oriented design, user interfaces, unit testing, design patterns, and refactoring.

Communication skills, team dynamics, working with a "customer", and creativity are also important factors in the course project. The knowledge, skills, and experience you gain will be invaluable in your future software development projects.

Objectives

We will learn about applying software engineering concepts to design and implement interactive applications.

One effective way to build such applications is to apply object-oriented design and use software components. To be useful to end users, the design of these applications must also be guided by usability principles. The course involves a team project in building a well-designed Java/Android application with a sophisticated graphical user interface.

By the end of this course, you will have a strong background in basic software engineering concepts. Also, you will have the skills to implement interactive applications in Android. You will learn to propose and think critically about software and user interface designs.

Students are expected to participate in all classes and labs.

Pre-requisites

CMPUT 201 or 275

Course Topics

Software engineering:

Course Work and Evaluation

All assignments and project parts are due at 16:00 MT on the due date.

Exams are synchronized.

In the labs, the TAs will explain the submission process for lab exercises (typically online). Late submissions will not be accepted.

Note the rightmost column below, which shows collaboration models for each unit of course work. These models are described on the CS course policy page:

|Individual Work | Assignment 0| required | September 20 | Consultation |

|Individual Work | Assignment 1|8% | September 27 | Consultation |

|Individual Work | Assignment 2|8% | November 15 | Consultation |

|Individual Work | Participation|8% | throughout | Consultation |

|Individual Work | Final Exam |36% | see BearTracks | Consultation |

|-------------------------------------------------------------------------|

|Team Work | Project Part 0 |required | September 24 | Teamwork |

|Team Work | Project Part 1 |required | October 1 | Teamwork |

|Team Work | Project Part 2 |8% | October 15 | Teamwork |

|Team Work | Project Part 3 |12% | November 5 | Teamwork |

|Team Work | Project Part 4 |20% | November 29 | Teamwork |

|Total | |100% | | |

Exams:

There is no possibility of a reexamination in this course.

The final exam is tentatively scheduled for: Monday, December 13 starting at 14:00.

You must verify the date and time on BearTracks when the final exam schedule is posted.

Grade Evaluation:

The individualized project score depends on the following main factors: how well your team did, the peer review forms of your team members, your completion of peer review forms, and the instructor and TAs' assessment of your individual contribution.

The conversion of your total numeric coursework score to a final grade will be based on interpreting the guidelines of the descriptors, letter grading system, and four-point scale as defined in the University Calendar ยง23.4. That is, grades are assigned on what we judge to be "failure", "minimal pass", "poor", "satisfactory", "good", or "excellent" performance in the context of the class.

We do not use a particular distribution to do the conversion, but instead use our judgement of how your score reflects mastery of the course material. That said, you generally need to be above the median to earn at least a 3.0 or B.

Course Materials

This course does not have a required textbook. There are a number of excellent resources for this course, available as electronic books or through open access on the Web. See the course eClass site for links.

Images reproduced in lecture slides have been included under section 29 of the Copyright Act, as fair dealing for research, private study, criticism, or review. Further distribution or uses may infringe copyright on these images.

In addition to fair dealing, the Copyright Act specifically exempts projected displays by educational institutions for the purposes of education or training on the premises of the education institution.

Copyright regulations, however, prohibit me from distributing complete copies of the lecture slides on the course eClass site.

You may assume that any code examples we provide to you are public domain and free for you to take without attribution, unless they are licensed.

Please see the Final Exam page when posted for representative example questions.

Academic Integrity

The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour (online at www.governance.ualberta.ca) and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University. (GFC 29 SEP 2003)

Course Policies

Please see the Course Policies specific to CMPUT 301.

Most course policies are determined by the Department of Computing Science. See the following page for general information on CS course policies.

https://www.ualberta.ca/computing-science/resources/policy-information/department-course-policies.html Last modified: Wednesday, 1 September 2021, 9:51 AM