CS222 Spring 2023

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

Office Hours

Monday No OH this week!
Tuesday No OH this week!
Wednesday No OH this week!
Thursday No OH this week!
Friday No OH this week!
Saturday No office hours

All office hours are hosted on Discord. Please join using the Discord link posted on Canvas.


Date Lecture Contents
1/18 Intro to CS222 [Slides]
1/25 Project Planning [Slides] [Proposal Details]
2/1 Intro to Git [Slides]
2/8 Intro to Github [Slides]
2/15 Testing [Slides]
2/22 Backend/Code-Level Design [Slides]
3/1 Mobile Development [Slides]
3/8 Readability & Design Patterns [Slides]
3/22 Cloud [Slides]
3/29 TBD
4/5 SIGAIDA [Slides]
4/12 TBD
4/19 TBD
4/26 TBD
5/3 TBD
TBD (Finals Week) Final Project Presentations!

As the semester progresses, we will continue to update the schedule.


Lectures: Attendance is not required. The first four lectures will have a post-lecture assignment to reinforce the content; the first of these is worth .5% of your final grade, and the rest are worth 1.5% each. For subsequent lectures, you must either complete a short, simple practice question during lecture or complete a practice assignment in the week after the lecture to show that you understand what was covered. Each week's checkpoint (either in lecture, or after lecture) is worth 1 percent of your final grade; you cannot earn extra credit by completing both the in-lecture and after-lectue checkpoints, although you are welcome to do so for practice.

Grading Policy

Note that due to Canvas limitations, each time you complete both the in-lecture and post-lecture checkpoints, you'll receive 1% more credit toward your final grade than you should. We will correct this before submitting final grades to the registrar.

Plagiarism Policy

Your group members are the only ones permitted to develop and debug all work submitted unless otherwise directed in the course.

You may have high-level discussions or discuss rules of language syntax with students outside of your group. However, the source code for your project may only be shown to people outside of your group or course staff until after the current semester has concluded.

Your group may consult resources that help you attain a better conceptual understanding of a given problem and the techniques to solve it. However, you must clearly cite whatever outside material you introduce or adapt into your submission. For each coding check-in, any source code in your repository may contain up to 25% code from external sources. This code must be cited appropriately. This policy applies to any code copied from sites like StackOverflow and GeeksForGeeks and placed directly into your source code. It does not include the usage of open source libraries as project dependencies (e.g. web frameworks, JSON parsing libraries, etc.).

The CS department expects you to be familiar with the CS department's Honor Code and the University expects you all to be familiar with Rule 33 in the Code of Policies and Regulations Applying to All Students. All parties involved in a violation of this policy will receive a 0 on that check-in and their final course grade reduced by one letter (e.g., A->B, B->C, etc.). A second offense will result in a failing grade for the class.

In the event of an academic integrity violation, we will attempt to separately establish each person’s involvement and appropriate sanctions separately. However, by default, all group members will receive the same penalty.

Course Resources

General Software Engineering

Git and GitHub

Mental Health and Inclusivity