CS360

Copyright @ CMPUT301 - University of Alberta

CS360 Course Fall 2021

Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026). Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024). Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023). Alexander Wong, 2019. status: published

CS360 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

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.

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.

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