CS222 Fall 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.

Course Philosophy

Working together enhances your learning and problem-solving abilities. It's a chance to share ideas, pool skills, and have a rewarding experience. Whether you're teaming up with friends or making new connections, this collaborative approach will enrich your time in CS222.

For these reasons, group work is a core part of this course and the majority of your grade will be based on your team project (completed in groups of exactly four).

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 Campuswire. Please join using the Campuswire link posted on Canvas.

Calendar

Date Lecture Contents
8/25 Course Introduction [Recording] [Slides]
9/1 Git Basics [Recording] [Excalidraw]
9/8 Git Advanced [Recording] [GitHub Resources]
9/15 Software Engineering Overview [Recording] [Slides]
9/22 Successful Projects [Recording] [Slides]
9/29 Frontend Development [Recording] [Slides]
10/6 Backend Development [Recording] [Slides]
10/13 Code Commenting [Recording] [Slides]
10/20 Cloud Computing [Recording] [Slides]
10/27 Databases [Recording] [Slides]
11/3 Security [Recording] [Slides]
11/10 Networks [Recording] [Slides]
11/17 Wrapping up - Post Mortems [Recording] [Slides]
11/24 FALL BREAK - ENJOY YOUR VACATION
12/1 Mastering Presentation Skills [Recording]
TBD (Finals Week) Final Project Presentations!

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

Expectations

Lectures: Attendance is not required, however we will post a short quiz on the content of each lecture. This is much easier if you go to lecture, but we'll post recordings and/or slides. Unless otherwise specified, any assignments announced during lecture (i.e. the quizzes) are due at the start of the following lecture.

Grading Policy

Please see the Canvas gradebook!

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