420-4A8-AB
Teachers: Alex Fulleringer, Helen Katalifos
Schedule (Winter 2025)
Section 1: Monday 8:30-10:30, Tuesday 10:00-13:00, Thursday 8:30-11:30
Section 2: Tuesday 11:30-13:30, Thursday 10:00-13:00, Friday 10:00-1
In this course, we would like to be able to provide an environment, such that at the end of the course, you will be able to know the answers to:
- What is it really like to work on a development team?
- What is it really like to work on an existing code base?
- What are the industry standards for development processes, environments and practices
Project based course, running through the development cycle
- SCRUM (Agile)
- Group project development, working on the same code
- Requirements
- Documenting design
- Design patterns
- Connecting to database
- Fixing bugs, modifying features, adding new features
- Creating UI
- Writing tests and code coverage
- The integration and deployment
- Being involved in discussions
- Coordinating
- Assessing things
- Building something together
- Researching, looking into all the unknowns to build a full picture
- New technologies, new concepts
- Figuring out others’ code.
- Struggling through
-
Software Development Life Cycle
- Understand the Iterative development approach
- Explain the basic principles of Agile project management
- Use Scrum methods in their software development life cycle
- Understand project management and related tools, such as Continuous integration and issue tracking
-
Requirements gathering
- Analyze and describe domain, actors and needs
- Create use cases
-
Application Design
- Design Patterns and Architectural Layers
- Understand the difference between Design Patterns and Architectural Layers
- Understand the principles and differences between patterns
- Model-View-View-Model
- Model-View-Controller
- Others
- Design the database using abstract models
- Choose the appropriate design pattern based on requirements, and design the application
-
Development, Integration, Testing, Release
- Write and Test Code for a native Windows GUI application (using .NET WPF)
- Prepare and Test Database
- Integrate changes to existing code base
- Perform validation testing
- Package software with all dependencies, and prepare installation program
-
Tests
- Differentiate between unit, integration and regression testing
- Create effective tests for a given technical requirement.
Tight collaboration and coordination between the 2 sections
Grading rubrics pre-determined for both sections
Tests on Thursdays
Tools: Lea, Mio, Teams, Moodle
Project based, group development - meetings
Visual Studio Enterprise 2022 - student access via Azure Dev
- Attendance is MANDATORY, even on lab days.
- Marks will be lost on your milestones/assignments if you do not attend class (missing 20% of class time for an assessment will result in a 0, per the attendance policy), unless you have sufficient reason.
- Participation will be part of your mark for group milestones.
Why not to cheat!
- Skills development
- You don't learn unless you struggle to figure things out for yourself
- Self-sabotage
If the material is too hard to understand,
- ask for help early on:
- Contact teacher.
- Find a tutor.
If you want to help a friend that is stuck,
- try guiding them to think of the problems differently.
Give yourself the time to work through roadblocks.
- Be polite at all times!
- It is ok not to like someone, it is not ok to let that change your behaviour towards them.
- Attendance (again) ... if you are not attending class, your teammates will have more work to do.