Learning Resources & Reference Materials
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 summary: Resources, Reference Materials, Notes, Videos, Slides
- Readings
- General Resources
- Java + UML + OO Textbooks
- Java
- Android Studio
- UML
- MVC
- Git and GitHub Resoirces
- Android Activity Resources
- Android Debugging Resources
- Android Student Picker Example App
- Code Conventions Resources
- Software Process
- Unit Testing in Android with JUnit
- Requirements
- Testing
- Intent Testing in Android
- Design Patterns
- User Interface Design
- Human Error
- Mentis for Review
If you find broken links, please file a GitHub issue.
Readings
Course Notes
General Resources
- Assignment FAQ
- Exam Practice Questions
- Old Participation Exercise
- SPM and SDA MOOC Resources
- Old Lecture and Lab Recordings
- Old Lab Notes
-
- You must log in with the University of Alberta Library to get free access to O'Reilly books
- Also try this link
- StackOverflow
Java + UML + OO Textbooks
You already paid for these full e-textbooks with your tuition!
- Book: Developing applications with Java and UML
- Book: Java Design: Objects, UML and Process
- Book: Object-oriented design with UML and Java
Java
- Java OOP Notes
- Java Notes for Professionals
- Java Examples
- Book: Learning java
- Book: Core java for the Impatient
- Book: Java in a Nutshell
- Book: Java Power Tools
- Java Style Guide by Google
- A Good Interactive Course
- Java Quick Look
- A Good Video Tutorial
- Official Tutorial
Android Studio
UML
- IBM - An introduction to UML
- https://www.uml-diagrams.org/
- Modelling Style Guidelines: Strategies for Better Diagrams
- Allen Holub’s UML Quick Reference
- UML Distilled: A Brief Guide to the Standard Object Modelling Language, Third Edition - Martin Fowler
- Book: Head First Object-Oriented Analysis and Design
MVC
Git and GitHub Resoirces
- Book: Version Control with Git
- Distributed Git: Contributing to a Project
- GitHub Help
- Wikipedia: Git
- Book: Pro Git
Android Activity Resources
- Android Guide: The Activity LIfecycle
- Android Guide: Common LayoutsURL
- Android Guide: Accessing Resources
- Android ArrayAdapter API
Android Debugging Resources
Android Student Picker Example App
-
An example of developing an Android app that randomly picks students in a class.
- Part 2: Laying Put the User Interface Screens
- Part 3: Developing and Testing the Model
- Part 4: Navigating between Activities
- Part 5: Controllers and Adding Students
Code Conventions Resources
Software Process
- Agile Manifesto
- Extreme Programming: A Gentle Introduction
- Scrum Guide
- Book: User Stories Applied
- Book: Extreme Programming Explained
- Book: Agile Development in the Real World
- Processes Used in Industry
- Intro to Version Control Slides (1up)
- Continuous Integration Guest Lecture (Pang)
- Software in the Real World Guest Lecture (Tariq Masters)
- How Microsoft Builds Software
- Book: The Build Master
Unit Testing in Android with JUnit
Requirements
- INVEST in Good Stories, and SMART Tasks
- Essential XP: Card, Conversation, Confirmation
- Book: Learning UML 2.0
Testing
- Book: Test-Driven DevelopmentURL
- Cause of AT&T Network Failure
- Medical Devices: The Therac-25
- The Way of Testivus
Intent Testing in Android
Design Patterns
- Huston Design Patterns
- SourceMaking
- SourceMaking Design Patterns
- Book: Design Patterns: Elements of Reusable Object-Oriented Software
- SourceMaking Refactoring
- Book: Refactoring Improving the Design of Existing Code
- Book: Head First Design Patterns
User Interface Design
- A Software Design Manifesto
- Joel on Software
- User Interface Design for Programmers
- Android Design Principles
- Interface Hall of Shame
- Bad Designs