Notice: CMPUT 301 in Winter 2023
CMPUT 301 in Winter 2023 is in person. Your groups are formed from the SAME lab section (different instructors are fine).
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
- interactive applications
- usability guidelines
- graphic design
Slides
https://archive.org/details/ualberta-cmput301-lecture-slides-2016/
Videos
These videos are of varying quality.
- Android MVC 1/2
- Android MVC 2/2
- Requirements 1
- Requirements 2
- Sequence Diagrams
- Testing 1/3
- Testing 2/3
- Testing 3/3
- Design Patterns 1
- Design Patterns 2
- Design Patterns 3
- Optimization Part 1
- Optimization Part 2
- Optimization Part 3
- Optimization Part 3.5
- Refactoring 1
- Refactoring 2
- Refactoring 3
- Usability
- UI and Graphic Design
Building an app start to finish no editting:
Copyright
Copyright 2020 Abram Hindle, Ken Wong
Original Slides by Ken Wong
Notice: CMPUT 301 in Winter 2022
It was online.
Notice: CMPUT 301 in Winter 2021
I am going to be teaching CMPUT 301 in Winter 2021, remotely regardless of what the university decides.
It will be a synchronous course. You will have to attend lectures as I give them. There will be in class exercises that are synchronized.
There will be group work where you are expected to synchronize within your labs.
If we’re forced on campus in winter the actual lecture will still be online and you’re free to go that classroom and stream the lecture on the projector. I will not be there.
This will be a very synchronous online course with group work.