CS253: Software Development, Autumn 2023

Announcements

Assignment 6 Live!
December 1, 2023

Hello, all! Assignment 6 is live, and is found here.

In assignment 6, we will be using object-oriented programming to design and implement a banking application. Assignment 6 is due by 11:59pm CST on Friday, 12/8.

Please use Piazza, Anna's office hours, my office hours, via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

Assignment 5 Live!
November 25, 2023

Hello, all! Assignment 5 is live, and is found here.

In assignment 5, we find our second "writing"-type assignment, which is focused on writing a proposal for a new project (based off of your final projects!). Assignment 5, or Writing Assignment 2, is due by 11:59pm CST on Tuesday, 12/5.

Please use Piazza, Anna's office hours, my office hours, via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

Assignment 3 Grades Released!
November 24, 2023

Hi, everyone! Assignment 3 Grades will be coming to you shortly. Great job on your 1st written work analyzing an actual website for accessibility!

Grocery Store App Demo
November 18, 2023

Hi, all! Here is the complete Grocery Store App demo from Lectures 22-24. To run the application, follow the instructions in the email regarding the app. Grocery Store App demo.

Scalability Resources
November 11, 2023

Howdy, everyone! Following our lectures on scalability, this document discusses different "design patterns" which are useful to understand, especially when writing scalable applications: Scalabililty resources.

Assignment 2 Grades Released
November 4, 2023

Hi, everyone! Assignment 2 Grades will be coming to you shortly. Check your email for your grade and for feedback on your code! Overall, I'm very pleased with how everyone did implementing the Course Planner!

Assignment 4 is live!
October 29, 2023

Hello, all! Assignment 4 is live, and is found here.

In assignment 4, we will use Flask and Python to help a professional sports team with a small web-based application. Assignment 4 is due by 11:59pm CST on Saturday, 11/12.

Please use Piazza, Anna's office hours, my office hours, via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

Course Project Teams Announced
October 20, 2023

Hi, everyone! Course projects have been chosen and teams have been assigned! As of now, you will have been contacted via email with your group. We were able to assign everyone a project from either their 1st or 2nd choices (of those who voted).

More to come on Tuesday about project expectations and team dynamics. Stay tuned!

Assignment 1 Grades Released
October 13, 2023

Hi, everyone! Assignment 1 Grades will be coming to you shortly. Check your email for your grade and for some style feedback on your code! Overall, I'm very pleased to say that everyone did a really great job!

Assignment 3 is live!
October 6, 2023

Hello, all! Assignment 3 is live, and is found here.

In assignment 3, we find our first "writing"-type assignment (distinct from "coding"-type assignments), which is focused on accessibility in web design. Assignment 3, or Writing Assignment 1, is due by 11:59pm CST on Saturday, 11/4.

Please use Piazza, Anna's office hours, my office hours, via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

SQL Resources
October 5, 2023

Howdy, everyone! Here are some resources, compiled by Mark Liffiton, to support you as you continue to learn SQL: SQL resources.

Assignment 2 is live!
September 22, 2023

Hello, all! Assignment 2 is live, and is found here.

In assignment 2, we will be applying what we have seen with HTML, CSS, and Javascript to make our first web-based application, the Illinois Wesleyan Course Planner. The Course Planner is due by 11:59pm CST on Friday, 10/6.

Please use Piazza, Anna's office hours, my office hours (check the Google form to vote!), via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

Javascript (Front-end) Resources
September 21, 2023

Howdy, everyone! Here are some resources, compiled by Mark Liffiton, to support you as you continue to learn Javascript: Javascript DOM resources.

HTML/CSS Resources
September 19, 2023

Howdy, everyone! Here are some resources, compiled by Mark Liffiton, to support you as you continue to learn HTML/CSS: HTML/CSS resources.

Git Resources
September 15, 2023

Howdy, everyone! Here are some resources, compiled by Mark Liffiton, to support you as you continue to learn Git: Git resources.

Assignment 1 is live!
September 8, 2023

Hello, all! Assignment 1 is live, and can be found here.

Assignment 1 consists of some Python and Javascript coding exercises and is due by 9:25am CST (i.e., start-of-class) on Tuesday, 9/19.

Please use Piazza, Anna's office hours, and myself, via email or Piazza, to help with any questions that you might have. Thanks very much, and good luck!

Introducing TA Anna Sheaffer
September 1, 2023

Hello, everyone! Happy Labor Day Weekend. I wanted to share that we have a wonderful TA joining our class, Anna Sheaffer! If you need to reach Anna, you can do so via her email: asheaffe@iwu.edu.

Anna's office hours will be Mondays from 10am-noon CST, and Wednesdays 7-9pm CST.

Additionally, please use this link to add yourself to our class instance of Piazza.

Finally, one our our colleagues, Elijah Kolawole, has created this very helpful 5-minute video to share how best to install pip and Jupyter notebook for Windows computers. Thanks, Elijah!! As a note: if you would prefer to work on problems outside of Jupyter notebook, that is OK, as well. This brief tutorial is helpful for those who are interested in using the notebooks: Install Jupyter Notebook on Windows.

Thanks very much, and see ya on Tuesday!

Python (Back-end) Resources
August 31, 2023

Hi, all! Thanks for a great day today! Mark Liffiton of the CS Department has assembled this list of resources to help you get up to speed with Python. Understanding Python will be very important and useful later on, as Python will be our language-of-choice for the backend of our applications, and we will soon see how this is a very critical layer of any web-based application.

The official documentation on unit testing in Python can be found here.

Additionally, I have found this to be a great resource from Nick Parlante, who teaches an introductory class in Python at Stanford University: Python Guide.

I don't want any of you to feel overwhelmed by these resources; I'm providing you more than you need, hopefully, just so that you have them and can rely on them. You don't need to read all of this stuff, although if you felt a little unsure based on the exercises today in class, I'd recommend giving it a look! 😊

See ya next time!

Welcome to CS253!
August 29, 2023

Welcome to CS253, Software Development! This writing-intensive course builds on fundamental coding skills and introduces several aspects of the software development lifecycle, culminating in a final project which combines all of these into a concrete, web-based application. Students are exposed to the layers of the full software development stack, from front-end to backend and everything in between.

If you need anything, please email me at dgeorge@iwu.edu.

See ya soon!

Course Staff

  • TA: Anna Sheaffer
  • asheaffe@iwu.edu
  • Office Hours: Monday 10am-noon CST, Wednesday 7-9pm CST
  • Office: CNS E201 (Mondays) and CNS E210 (Wednesdays)

Please note that all lectures and assignment deadlines are subject to change.

Our CS253 website imitates that used by Stanford University's CS110, Autumn 2021.

Main

  Course Staff
  Office Hours
  Lectures/Labs
  Moodle
  Piazza

Lectures

26: Architecture Design Patterns, Security I
   slides Video Recording

25: User Interface Design, CSS Bootstrap
   slides Video Recording

24: Grocery Store App III
   Video Recording

23: Grocery Store App II
   Video Recording

22: Grocery Store App I
   Video Recording

21: Scalability III
   slides Video Recording

20: Software Team Building (live lecture)

19: Scalability II
   slides Video Recording

18: Scalability I
   slides lab17 handout Video Recording

17: Git, Revisited: In-class Demo
   Video Recording

16: Course Project Requirements & Teams
   slides project handout Video Recording

15: (no lecture; office hours)

14: Object-Oriented Programming
   slides Video Recording
   OOP Exercises

13: The Software Development Process
   slides Video Recording

12: SQL and Data II
   slides lab11 handout Video Recording
   SQL exercises II

11: SQL and Data I
   slides lab10 handout Video Recording
   SQL exercises I

10: Python and Flask II
   slides lab9 handout Video Recording

09: Our First Server; Python and Flask I
   slides lab8 handout Video Recording
   Flask server demo

08: Javascript III, Intro to Networking
   slides lab7 handout Video Recording

07: HTML, CSS
   slides lab6 handout Video Recording

06: Git II
   slides lab5 handout
   Git conflicts demo Video Recording

05: Git I, Intro to Git
   slides lab4 handout Video Recording

04: Javascript II
   slides lab3 handout Video Recording
   Javascript DOM demo

03: Javascript I, Intro to Javascript
   slides lab2 handout Video Recording

02: Python Review, Intro to Testing
   slides unit test demo lab1 handout
   lab1 answers unit test demo (.ipynb)
   lab1 handout (.ipynb)

01: What is Software Development?
   slides course info

Assignments

Assignment 6 Assignment 5 (Writing Assignment 2) Assignment 4 Assignment 3 (Writing Assignment 1) Assignment 2 Assignment 1

Resources

Python
   Python Guide
   previous CS253 Python Help
   Unit testing
Javascript
   Javascript Guide
   DOM Guide
SQL
   SQL Guide
Git
   Git Guide
   Using Git in a Team
   Gitflow
Scalabililty
   Software Architecture Patterns
Writing
   Technical Report Guidelines & Suggestions
   HATS Procedure for Business Documents
   Reports, Proposals, and Technical Papers
   How To Write a Good Technical Report

Course Project

   Project Requirements
   Team Contract
   User Stories