Course Outline Winter 2024
General Information
Term: Winter 2024
Number of credits: 3 credits
Lecture (E)B1
Date and Time: Monday-Wednesday-Friday, 10:00-10:50 MT
Location: C E1-60
Instructor: Dr. Abram Hindle
Lecture (E)B2
Date and Time: Monday-Wednesday-Friday, 11:00-11:50 MT
Location: ETLC E1-017
Instructor: Dr. Hazel Campbell
Labs start in the FIRST week of classes.
Lab (E)H01
Date and Time: Tuesday, 17:00-19:50
Location: ETLC E1-013
Lab (E)H02
Date and Time: Wednesday, 17:00-19:50
Location: ETLC E1-0003
Lab (E)H03
Date and Time: Thursday, 17:00-19:50
Location: CCIS 1-140
See Contact Information for details about your instructor and teaching assistants.
Policy about course outlines can be found in Course Requirements, Evaluation Procedures and Grading of the University Calendar.
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:
-
object-oriented analysis and development
-
Unified Modeling Language
-
software processes
-
requirements
-
testing
-
design patterns
-
refactoring
-
tools
-
revision control
Course Work and Evaluation
All assignments and project parts are due at 16:00 MT on the due date.
Exams are in-person. Exercises are in person. Midterms are in person.
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:
https://www.ualberta.ca/computing-science/resources/policy-information/department-course-policies.html
Individual Work |
Assignment 0 |
required |
January 22 |
Consultation |
Assignment 1 |
8% |
February 5 |
Consultation |
|
Participation |
7% |
throughout |
Consultation |
|
Midterm Exam 1 |
15% |
January 31 |
Solo Effort |
|
Midterm Exam 2 |
15% |
March 4 |
Solo Effort |
|
Midterm Exam 3 |
15% |
April 3 |
Solo Effort |
|
Team Work |
Project Part 0 |
required |
January 22 |
Teamwork |
Project Part 1 |
required |
February 5 |
Teamwork |
|
Project Part 2 |
8% |
February 16 |
Teamwork |
|
Project Part 3 |
12% |
March 8 |
Teamwork |
|
Project Part 4 |
20% |
April 8 |
Teamwork |
|
100% |
Reading break: Feb 19-23
Exams:
* There is no possibility of a reexamination in this course for midterms 1 and 2.
* Midterm 3 has a deferred oral exam. If you miss Midterm 3, you will have to do an oral exam.
There is NO Final exam.
In the midterm exams, you will be asked to code, diagram, write, describe and draw solutions to software engineering problems.
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. Obtaining 50 course marks or more guarantees a passing grade of at least D. Obtaining 90 course marks or more guarantees a grade of at least A-.
Grades are unofficial until approved by the Department and/or Faculty offering the course.
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 exam pages 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