CS 222 - Software Design Lab

Fall 2021

Official Description

Design and implementation of novel software solutions. Problem identification and definition; idea generation and evaluation; and software implementation, testing, and deployment. Emphasizes software development best practices?including framework selection, code review, documentation, appropriate library usage, project management, continuous integration and testing, and teamwork. Course Information: Prerequisite: CS 128; credit or concurrent registration in CS 225. Restricted to majors in Computer Science undergraduate curricula only.

Related Faculty

Subject Area

Software Engineering

Course Director

Michael Joseph Woodley

Meeting Schedule

Wednesdays at 10a via Zoom

Course Description

CS 222 prepares students to work effectively in a modern software development environment. Students join a team, identify a problem, design a solution, and then implement their design. Along the way they follow software development best practices related to code quality, review, and testing; timeline planning; teamwork and team communication; and maintenance of both internal and external documentation.

Each group works under the guidance of a mentor—an experienced student able to provide guidance on these topics.

 

 

Emphasizes software development best practices—including framework selection, code review, documentation, appropriate library usage, project management, continuous integration and testing, and teamwork.

 

— 1 credit hour. Required. Restricted to CS Majors. Prerequisites: CS 128.

 

Lectures

Lecture recordings can be found here:

https://mediaspace.illinois.edu/channel/CS222%2BOpen/227545313

 

Semester Calendar

At this time,  we are working on project proposals so we can collect the kinds of information that students would want to decide on a project.  I also have moved the Project Plans until we have already decided on the projects.

 

 

Date

Week

Focus

8/25 1

Course Expectations and Team Formation

9/1 2

First Mentor Meetings and Initial Project Discussions

9/8 3

Draft Project Plan

9/15 4

Final Project Plan

9/22 5 Project Pitches
9/29 6

Environment Review

10/6 7

Framework Review

10/13 8 Design Review
10/20 9

Code Review #1

10/27 10

Timeline and Teamwork Review

11/3 11

Code Review #2 (Peer to Peer)

11/10 12

Documentation Review

11/17 13

Code Review #3

11/24 14

Peer-to-Peer Review

  15

Final Project Presentations and Fair

Calendar Notes

  1. Course Expectations and Team Formation

    1. Team formation based on self-reported skill level, language preferences, and other constraints

    2. Mentors choose times based on the same information used for team formation

  2. First Mentor Meetings and Initial Project Discussions

    1. Teams should leave this meeting prepared to present a draft project plan one week later

    2. Initial exploratory development work should begin at this point

  3. Draft Project Plan

    1. Presented to mentor and one or two other teams for feedback

  4. Final Project Plan

    1. Presented to mentor and several other course staff for assessment

  5. Project Pitches

    1. Presented to several other teams for assessment and feedback

    2. While the project plan is an inward-facing document, the pitch is for external consumption

  6. Environment Review

    1. Mentors assess how well each group has set up a development environment that will support their project goals

  7. Framework Review

    1. Mentors assess each group’s choice of frameworks and external libraries and how well they support the project

  8. Design Review

    1. Mentors assess each group’s design and discuss their plans for transforming it into working code

  9. Code Review #1

    1. Mentors examine each group’s codebase and discuss testing tools and test coverage

  10. Timeline and Teamwork Review

    1. Mentors discuss progress toward project milestones and any adjustments that need to be made to ensure a successful finish

    2. Mentors also discuss how each team is working together, including how well they are using source code version control to collaborate

  11. Code Review #2 (Peer to Peer)

    1. Mentors and one other group examine each group’s codebase and discuss structural and organizational choices

  12. Documentation Review

    1. Mentors examine each group’s internal and external documentation and establish expectations for the final project assessment

  13. Code Review #3

    1. Mentors discuss high-level design decisions with each group

    2. Mentors also review testing coverage and discuss any gaps with the team

  14. Peer-to-Peer Review

    1. Group’s present and demo their projects to one or two other group’s for feedback before the final project presentations

  15. Final Project Presentations and Fair

    1. Each group presents their final project to a group of course staff. All aspects of the project are under review, including design, planning, execution, documentation, code quality, test coverage, and teamwork.

    2. Final project presentations are open to the public

    3. Students are also expected to present their work at a final project fair