Course 5 - Software Development Process

    CS 6300 · Difficulty: 3/5

    Brief Overview

    This course covers the software engineering lifecycle end to end: requirements gathering, design and UML modeling, implementation, testing, and team-based development. Unlike the systems courses, the focus is less on hard technical problems and more on the process of building software correctly — version control workflows, design documents, test coverage criteria, and working on a team.

    The work breaks down into three tracks:

    Detailed Overview

    Assignments

    A series of individual assignments that ramp up through the tools and concepts used in the larger projects:

    Difficulty: 2/5

    Summary: Individually light, but the testing assignment has more depth than it first appears — reasoning rigorously about MC/DC and path coverage impossibility takes real thought even when the code under test is small.


    Group Project: Android Application

    The centerpiece of the course: a team of three or four builds an Android app from a requirements description through multiple graded deliverables.

    Difficulty: 3/5

    Summary: The difficulty is not the code — it's coordination. Android has a learning curve if you haven't touched it before (lifecycle, threading rules, SQLite integration), and working from a shared codebase with real PR review makes this feel closer to an actual job than any other project in the program. Debugging subtle logic bugs in a codebase multiple people touch is its own education.

    Overall

    Difficulty: 2/5

    Summary: [In progress — summer 2026. Final verdict after the group project wraps.] So far: a low-stress course that pairs well with full-time work. The material is familiar if you've worked in industry, but the Android project provides genuinely new skills, and the testing assignments sharpen concepts most developers only know informally.