1. CC 410 - Advanced Programming > 
  2. Project Milestones > 
  3. Previous Semesters

Previous Semesters

Previous Semesters

  • Spring & Summer 2021
    • Final Project
      • Hello Real World
        • Restaurant Classes
          • Documentation & Testing
            • Inheritance
              • GUI Basics
                • Event-Driven Programming
                  • Orders & Combos
                    • Checkout
                      • Website Basics
                        • Form Data
                          • RESTful Architecture
                            • Validation & Serialization
                            • Fall 2021
                              • Final Project
                                • Hello Real World
                                  • Restaurant Classes
                                    • Documentation & Testing
                                      • Inheritance
                                        • GUI Basics
                                          • Event-Driven Programming
                                            • Orders & Combos
                                              • Checkout
                                                • Website Basics
                                                  • Form Data
                                                    • RESTful Architecture
                                                      • Validation & Serialization
                                                      • Fall 2022
                                                        • Final Project
                                                          • Hello Real World
                                                            • Restaurant Classes
                                                              • Documentation & Testing
                                                                • Inheritance
                                                                  • GUI Basics
                                                                    • Event-Driven Programming
                                                                      • Orders & Combos
                                                                        • Checkout
                                                                          • Website Basics
                                                                            • Form Data
                                                                              • RESTful Architecture
                                                                                • Validation & Serialization
                                                                                • Spring 2023
                                                                                  • Final Project
                                                                                    • Hello Real World
                                                                                      • Restaurant Classes
                                                                                        • Documentation & Testing
                                                                                          • Inheritance
                                                                                            • Design Patterns
                                                                                              • Test Doubles
                                                                                                • GUI Basics
                                                                                                  • Event-Driven Programming
                                                                                                    • Orders & Combos
                                                                                                      • Checkout
                                                                                                        • Website Basics
                                                                                                          • Form Data
                                                                                                            • RESTful Architecture
                                                                                                              • Validation & Serialization
                                                                                                              • Fall 2023
                                                                                                                • Final Project
                                                                                                                  • Hello Real World
                                                                                                                    • Restaurant Classes
                                                                                                                      • Documentation & Testing
                                                                                                                        • Inheritance
                                                                                                                          • Design Patterns
                                                                                                                            • Test Doubles
                                                                                                                              • GUI Basics
                                                                                                                                • Event-Driven Programming
                                                                                                                                  • Orders & Combos
                                                                                                                                    • Checkout
                                                                                                                                      • Website Basics
                                                                                                                                        • Form Data
                                                                                                                                          • RESTful Architecture
                                                                                                                                            • Validation & Serialization

                                                                                                                                            8.0.0

                                                                                                                                            Last modified by: Russell Feldhausen Aug 17, 2021

                                                                                                                                            Computational Core Logo



                                                                                                                                            • 0. Introduction
                                                                                                                                              • 1. Course Introduction
                                                                                                                                              • 2. Navigating Canvas & Codio
                                                                                                                                              • 3. Where to Find Help
                                                                                                                                              • 5. How to Learn Programming
                                                                                                                                              • 6. Fall 2025 Syllabus
                                                                                                                                              • 7. Plagiarism Policy
                                                                                                                                              • 8. Codio Projects
                                                                                                                                            • I. OOP
                                                                                                                                              • 1. Hello Real World
                                                                                                                                                • 1. Welcome
                                                                                                                                                • 2. The Growth of Computing
                                                                                                                                                • 3. The Software Crisis
                                                                                                                                                • 4. Language Evolution
                                                                                                                                                • 5. Writing Professional Code
                                                                                                                                                • 6. Hello Real World
                                                                                                                                                • 7. Summary
                                                                                                                                              • 2. Object-Oriented Programming
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Encapsulation
                                                                                                                                                • 3. Packages
                                                                                                                                                • 4. Type Systems
                                                                                                                                                • 5. Structs
                                                                                                                                                • 6. Modules
                                                                                                                                                • 7. State and Behavior
                                                                                                                                                • 8. Classes and Objects
                                                                                                                                                • 9. Access Modifiers
                                                                                                                                                • 10. Objects in Memory
                                                                                                                                                • 11. Message Passing
                                                                                                                                                • 12. Summary
                                                                                                                                              • 3. Documentation
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Documentation Types
                                                                                                                                                • 3. Documentation Formats
                                                                                                                                                • 4. Code Comments
                                                                                                                                                • 5. Javadoc
                                                                                                                                                • 6. Python Docstrings
                                                                                                                                                • 7. Generated Documentation
                                                                                                                                                • 8. Summary
                                                                                                                                              • 4. Testing
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Manual Testing
                                                                                                                                                • 3. Automated Testing
                                                                                                                                                • 4. Writing JUnit Tests
                                                                                                                                                • 5. Java Assertions
                                                                                                                                                • 6. Java Hamcrest
                                                                                                                                                • 7. Writing pytest Tests
                                                                                                                                                • 8. Python Assertions
                                                                                                                                                • 9. Python Hamcrest
                                                                                                                                                • 10. Running Tests
                                                                                                                                                • 11. Testing Strategies
                                                                                                                                                • 12. Summary
                                                                                                                                              • 5. UML
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. UML
                                                                                                                                                • 3. Boxes
                                                                                                                                                • 4. Typed Elements
                                                                                                                                                • 5. Classes
                                                                                                                                                • 6. Associations
                                                                                                                                                • 7. Creating UML Diagrams
                                                                                                                                                • 8. UML Example
                                                                                                                                                • 9. Summary
                                                                                                                                              • 6. Inheritance & Polymorphism
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Types
                                                                                                                                                • 3. Interfaces
                                                                                                                                                • 4. Java Interfaces
                                                                                                                                                • 5. Java Inheritance
                                                                                                                                                • 6. Python Interfaces
                                                                                                                                                • 7. Python Inheritance
                                                                                                                                                • 8. Type Checking & Conversion
                                                                                                                                                • 9. Message Dispatching
                                                                                                                                                • 10. Summary
                                                                                                                                              • 7. Debugging & Logging
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Art of Debugging
                                                                                                                                                • 3. Inspecting State
                                                                                                                                                • 4. Inspecting Behavior
                                                                                                                                                • 5. Debuggers
                                                                                                                                                • 6. Logging
                                                                                                                                                • 7. Summary
                                                                                                                                              • 8. Lambda Expressions
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Lambda Calculus
                                                                                                                                                • 3. Functions as Objects
                                                                                                                                                • 4. Java Lambdas
                                                                                                                                                • 5. Python Lambdas
                                                                                                                                                • 6. Best Practices
                                                                                                                                                • 7. Summary
                                                                                                                                              • 9. Design Patterns
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. The Gang of Four
                                                                                                                                                • 3. Software Design Patterns
                                                                                                                                                • 4. Builder Pattern
                                                                                                                                                • 5. Factory Method Pattern
                                                                                                                                                • 6. Singleton Pattern
                                                                                                                                                • 7. Iterator Pattern
                                                                                                                                                • 8. Adapter Pattern
                                                                                                                                                • 9. Template Method Pattern
                                                                                                                                                • 10. Summary
                                                                                                                                              • 10. Test Doubles
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Need for Test Doubles
                                                                                                                                                • 3. Arrange, Act, Assert
                                                                                                                                                • 4. Stubs
                                                                                                                                                • 5. Fakes
                                                                                                                                                • 6. Mocks
                                                                                                                                                • 7. Test Doubles in JUnit
                                                                                                                                                • 8. Test Doubles in pytest
                                                                                                                                                • 9. Dependency Injection
                                                                                                                                                • 10. Summary
                                                                                                                                            • II. GUI
                                                                                                                                              • 11. GUI Basics
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Screens
                                                                                                                                                • 3. Frameworks
                                                                                                                                                • 4. Designing a GUI
                                                                                                                                                • 5. Containers
                                                                                                                                                • 6. Layout Managers
                                                                                                                                                • 7. Elements
                                                                                                                                                • 8. Accessing GUI in Codio
                                                                                                                                                • 9. Java Swing
                                                                                                                                                • 10. Python tkinter
                                                                                                                                                • 11. Summary
                                                                                                                                              • 12. Parallelism
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Processes
                                                                                                                                                • 3. Threads
                                                                                                                                                • 4. Creating Threads
                                                                                                                                                • 5. Race Conditions
                                                                                                                                                • 6. Thread Synchronization
                                                                                                                                                • 7. Java Threads
                                                                                                                                                • 8. Java Synchronization
                                                                                                                                                • 9. Python Threads
                                                                                                                                                • 10. Python Synchronization
                                                                                                                                                • 11. Summary
                                                                                                                                              • 13. Event-Driven Programming
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. GUI Threads
                                                                                                                                                • 3. Binding Events
                                                                                                                                                • 4. Event Handlers
                                                                                                                                                • 5. Event Loop
                                                                                                                                                • 6. Swing Event Dispatch Thread
                                                                                                                                                • 7. tkinter Main Loop
                                                                                                                                                • 8. Summary
                                                                                                                                              • 14. External Libraries
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Software Libraries
                                                                                                                                                • 3. Library Types
                                                                                                                                                • 4. Frameworks
                                                                                                                                                • 5. Repositories
                                                                                                                                                • 6. Licenses
                                                                                                                                                • 7. Don't Reinvent the Wheel
                                                                                                                                                • 8. Java JARs
                                                                                                                                                • 9. Java Libraries
                                                                                                                                                • 10. Python Wheels
                                                                                                                                                • 11. Python Libraries
                                                                                                                                                • 12. Summary
                                                                                                                                              • 15. Creating a Release
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Preparing for Release
                                                                                                                                                • 3. Choosing a License
                                                                                                                                                • 4. Metadata
                                                                                                                                                • 5. GitHub Pages
                                                                                                                                                • 6. Building Java JAR File
                                                                                                                                                • 7. Building Python Wheel
                                                                                                                                                • 8. GitHub Releases
                                                                                                                                                • 9. Publication
                                                                                                                                                • 10. Summary
                                                                                                                                            • III. Web
                                                                                                                                              • 16. Data-Driven Websites
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. HTML
                                                                                                                                                • 3. CSS
                                                                                                                                                • 4. JavaScript
                                                                                                                                                • 5. HTTP
                                                                                                                                                • 6. Static Web Servers
                                                                                                                                                • 7. Dynamic Web Pages
                                                                                                                                                • 8. Template Rendering
                                                                                                                                                • 9. Web Frameworks
                                                                                                                                                • 10. Request & Response
                                                                                                                                                • 11. Routing
                                                                                                                                                • 12. Template Inheritance
                                                                                                                                                • 13. Summary
                                                                                                                                              • 17. REST and Forms
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. HTML Forms
                                                                                                                                                • 3. Form Data
                                                                                                                                                • 4. Spring and Form Data
                                                                                                                                                • 5. Flask and Form Data
                                                                                                                                                • 6. RESTful Routes
                                                                                                                                                • 7. Validation
                                                                                                                                                • 8. Summary
                                                                                                                                              • 18. Web APIs
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Web APIs
                                                                                                                                                • 3. REST
                                                                                                                                                • 4. Documenting Web APIs
                                                                                                                                                • 5. Handling Authentication
                                                                                                                                                • 6. Using a Web API
                                                                                                                                                • 7. Summary
                                                                                                                                              • 19. Serialization
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. State Review
                                                                                                                                                • 3. Text Formats
                                                                                                                                                • 4. Binary Formats
                                                                                                                                                • 5. Java Serialization
                                                                                                                                                • 6. Python Serialization
                                                                                                                                                • 7. Items to Exclude
                                                                                                                                                • 8. Databases
                                                                                                                                                • 9. Summary
                                                                                                                                              • 20. Extras
                                                                                                                                                • 1. Introduction
                                                                                                                                                • 2. Generics in Java
                                                                                                                                                • 3. Generics in Python
                                                                                                                                                • 4. Software Development Life Cycles
                                                                                                                                                • 5. Requirements Elicitation
                                                                                                                                                • 6. Security
                                                                                                                                                • 7. Résumés & Certifications
                                                                                                                                                • 8. Integrated Development Environments
                                                                                                                                                • 9. Programming Resources
                                                                                                                                                • 10. Summary
                                                                                                                                            • IV. Extras
                                                                                                                                              • 1. Installing Git on Windows
                                                                                                                                              • 2. Installing Python
                                                                                                                                              • 3. Installing Java
                                                                                                                                              • 4. Python IDEs
                                                                                                                                              • 5. Java IDEs
                                                                                                                                            • Weekly Updates
                                                                                                                                              • 1. Fall '25 Week 1
                                                                                                                                            • Example Projects
                                                                                                                                              • 0. New Project Checklist
                                                                                                                                              • 1. Hello Real World
                                                                                                                                                • 1. Codio and Terminal
                                                                                                                                                • 2. GitHub Classroom Setup
                                                                                                                                                • 3. Clone Starter from GitHub
                                                                                                                                                • 4.J. Java
                                                                                                                                                  • 4.J.1. Install Gradle
                                                                                                                                                  • 4.J.2. Create New Project
                                                                                                                                                  • 4.J.3. Write Hello World
                                                                                                                                                  • 4.J.4. Git Commit & Push
                                                                                                                                                  • 4.J.5. Unit Tests
                                                                                                                                                  • 4.J.6. Code Coverage
                                                                                                                                                  • 4.J.7. Documentation
                                                                                                                                                  • 4.J.8. Checkstyle
                                                                                                                                                  • 4.J.9. Hamcrest
                                                                                                                                                • 4.P. Python
                                                                                                                                                  • 4.P.1. Create New Project
                                                                                                                                                  • 4.P.2. Write Hello World
                                                                                                                                                  • 4.P.3. Git Commit & Push
                                                                                                                                                  • 4.P.4. Unit Tests
                                                                                                                                                  • 4.P.5. Install Tox
                                                                                                                                                  • 4.P.6. Code Coverage
                                                                                                                                                  • 4.P.7. Documentation
                                                                                                                                                  • 4.P.8. Flake8
                                                                                                                                                  • 4.P.9. Type Checking
                                                                                                                                                  • 4.P.10. Hamcrest
                                                                                                                                                • 5. Creating GitHub Release
                                                                                                                                                • 6. Assignment Requirements
                                                                                                                                                • 7. Next Steps
                                                                                                                                              • 2. Object-Oriented Programming
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 3. Unit Testing
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 4. Inheritance
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 5. Debugging & Logging
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                                • 2.P.1 Update to Example 5 Python
                                                                                                                                              • 6. Design Patterns
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 7A. Parallel Programming
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 7. Test Doubles
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 7B. Event-Driven Programming
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 8. GUI Basics
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 9. Combos & Libraries
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 10. Releases
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 11. Web Basics
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 12. Forms
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 13. REST
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                              • 14. Form Validation
                                                                                                                                                • 1. Assignment Requirements
                                                                                                                                                • 2.J. Java
                                                                                                                                                • 2.P. Python
                                                                                                                                            • Project Milestones
                                                                                                                                              • A. Final Project
                                                                                                                                              • 0. Hello Real World
                                                                                                                                              • 1. Restaurant Classes
                                                                                                                                              • 2. Documentation & Testing
                                                                                                                                              • 3. Inheritance
                                                                                                                                              • 4. Design Patterns
                                                                                                                                              • 5. Test Doubles
                                                                                                                                              • 6. GUI Basics
                                                                                                                                              • 7. Event-Driven Programming
                                                                                                                                              • 8. Orders & Combos
                                                                                                                                              • 9. Checkout
                                                                                                                                              • 10. Website Basics
                                                                                                                                              • 11. Form Data
                                                                                                                                              • 12. RESTful Architecture
                                                                                                                                              • 13. Validation & Serialization
                                                                                                                                              • Previous Semesters
                                                                                                                                                • Spring & Summer 2021
                                                                                                                                                  • A. Final Project
                                                                                                                                                  • 0. Hello Real World
                                                                                                                                                  • 1. Restaurant Classes
                                                                                                                                                  • 2. Documentation & Testing
                                                                                                                                                  • 3. Inheritance
                                                                                                                                                  • 4. GUI Basics
                                                                                                                                                  • 5. Event-Driven Programming
                                                                                                                                                  • 6. Orders & Combos
                                                                                                                                                  • 7. Checkout
                                                                                                                                                  • 8. Website Basics
                                                                                                                                                  • 9. Form Data
                                                                                                                                                  • 10. RESTful Architecture
                                                                                                                                                  • 11. Validation & Serialization
                                                                                                                                                • Fall 2021
                                                                                                                                                  • A. Final Project
                                                                                                                                                  • 0. Hello Real World
                                                                                                                                                  • 1. Restaurant Classes
                                                                                                                                                  • 2. Documentation & Testing
                                                                                                                                                  • 3. Inheritance
                                                                                                                                                  • 4. GUI Basics
                                                                                                                                                  • 5. Event-Driven Programming
                                                                                                                                                  • 6. Orders & Combos
                                                                                                                                                  • 7. Checkout
                                                                                                                                                  • 8. Website Basics
                                                                                                                                                  • 9. Form Data
                                                                                                                                                  • 10. RESTful Architecture
                                                                                                                                                  • 11. Validation & Serialization
                                                                                                                                                • Fall 2022
                                                                                                                                                  • A. Final Project
                                                                                                                                                  • 0. Hello Real World
                                                                                                                                                  • 1. Restaurant Classes
                                                                                                                                                  • 2. Documentation & Testing
                                                                                                                                                  • 3. Inheritance
                                                                                                                                                  • 4. GUI Basics
                                                                                                                                                  • 5. Event-Driven Programming
                                                                                                                                                  • 6. Orders & Combos
                                                                                                                                                  • 7. Checkout
                                                                                                                                                  • 8. Website Basics
                                                                                                                                                  • 9. Form Data
                                                                                                                                                  • 10. RESTful Architecture
                                                                                                                                                  • 11. Validation & Serialization
                                                                                                                                                • Spring 2023
                                                                                                                                                  • A. Final Project
                                                                                                                                                  • 0. Hello Real World
                                                                                                                                                  • 1. Restaurant Classes
                                                                                                                                                  • 2. Documentation & Testing
                                                                                                                                                  • 3. Inheritance
                                                                                                                                                  • 4. Design Patterns
                                                                                                                                                  • 5. Test Doubles
                                                                                                                                                  • 6. GUI Basics
                                                                                                                                                  • 7. Event-Driven Programming
                                                                                                                                                  • 8. Orders & Combos
                                                                                                                                                  • 9. Checkout
                                                                                                                                                  • 10. Website Basics
                                                                                                                                                  • 11. Form Data
                                                                                                                                                  • 12. RESTful Architecture
                                                                                                                                                  • 13. Validation & Serialization
                                                                                                                                                • Fall 2023
                                                                                                                                                  • A. Final Project
                                                                                                                                                  • 0. Hello Real World
                                                                                                                                                  • 1. Restaurant Classes
                                                                                                                                                  • 2. Documentation & Testing
                                                                                                                                                  • 3. Inheritance
                                                                                                                                                  • 4. Design Patterns
                                                                                                                                                  • 5. Test Doubles
                                                                                                                                                  • 6. GUI Basics
                                                                                                                                                  • 7. Event-Driven Programming
                                                                                                                                                  • 8. Orders & Combos
                                                                                                                                                  • 9. Checkout
                                                                                                                                                  • 10. Website Basics
                                                                                                                                                  • 11. Form Data
                                                                                                                                                  • 12. RESTful Architecture
                                                                                                                                                  • 13. Validation & Serialization
                                                                                                                                            • Instructor Resources
                                                                                                                                              • 1. Module Outline & Notes
                                                                                                                                              • 2. New Semester
                                                                                                                                              • 3. Errata
                                                                                                                                              • 4. Python 3.9

                                                                                                                                            •  

                                                                                                                                            Built using Hugo and Hugo Relearn Theme.

                                                                                                                                            Creative Commons License
                                                                                                                                            This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See License & Attribution for details.