andrew@theinternet

For Summer 2020, my third semester, I chose to take CS6300: Software Development Process. This class focuses on all the industry practices that distinguish ‘software engineering’ from ‘coding’. The central premise is that it is generally too hard to ‘wing’ software projects above a certain size, and you need a system to make good progress. This seems like a reasonable stance to take.

The material is taught in the context of both group and individual projects requiring the students to make simple Android apps in Java. I knew zero words of Java and nothing about Android programming before starting the course, but the prof and TAs do a really good job scaffolding you up to a level where you can manage it. Plus, you know, IntelliJ and Android Studio hold your hand a lot, which is convenient.


  • The screenshot images in these lecture notes are property of Georgia Tech. You can find the originals in the publicly available Udacity and Kaltura videos.

Lecture Notes

  • Part 1 Lesson 1 - Introduction
  • Part 1 Lesson 2 - Life Cycle Models
  • Part 1 Lesson 5 and Part 2 Lesson 1 - Requirements
  • Part 2 Lesson 2 - UML
  • Part 2 Lesson 3 - Android
  • Part 3 Lesson 1 - Software Architecture
  • Part 3 Lesson 3 - Design Patterns
  • Part 3 Lesson 4 - Unified Software Process
  • Part 4 Lesson 1,2,3 - Verification and Testing
  • Part 4 Lesson 4 - Agile Development Methods
  • Part 4 Lesson 5 - Software Refactoring