Skip to content

Latest commit

 

History

History
132 lines (91 loc) · 4.08 KB

00.1_Introduction.md

File metadata and controls

132 lines (91 loc) · 4.08 KB

Application Development I

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

Course Summary

Goals

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

Specifics

Project based course, running through the development cycle

Working on a development team

  • SCRUM (Agile)
  • Group project development, working on the same code

Working on an existing application

  • 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

Acquired Skills (non-technical)

Communicating

  • Being involved in discussions
  • Coordinating
  • Assessing things
  • Building something together

Resourcefulness

  • Researching, looking into all the unknowns to build a full picture
  • New technologies, new concepts
  • Figuring out others’ code.
  • Struggling through

Course Content

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

Course Mechanics

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

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

Plagiarism and Cheating

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.

Professionalism

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