Designing Software for the Web (Honors)

Unit 1: Introduction

Summary

Brief introduction to each component of web app development

Topics

Learning Objectives

Unit 2: Python

Summary

Crash course in Python for students that have some programming background (e.g. in Scratch, Snap, Processing, Java, Swift, etc.)

Topics

Learning Objectives

Unit 3: Tools and Practices, Part 1

Summary

Unit testing in Python, Test-Driven Development, Exceptions, Modules

Topics

Learning Objectives

Unit 4: Web Fundamentals

Summary

Deeper introduction to Flask Web Framework, and MVC-based web applications, intro to cloud deployment

Topics

Learning Objectives

Unit 5: Data, Part 1

Summary

JSON, JSON APIs (read only), Python requests module, access tokens, computing with JSON data

Topics

Learning Objectives

Unit 6: Security

Summary

OAuth. Web App vulnerabilities. Sanitizing Inputs, Captchas

Topics

Learning Objectives

Unit 7: Data, Part 2

Summary

Updating Server Side State

Topics

Learning Objectives

Unit 8: Front End Design

Summary

JavaScript Syntax and Semantics. JQuery, Bootstrap. UI design principles.

Topics

Learning Objectives

Unit 9: Tools and Practices, Part 2

Summary

More advanced uses of git (branches, merge conflicts), End-to-end integration testing, Continuous integration.

Topics

Learning Objectives

Unit 10: Projects

Summary

Students work on final capstone projects

Topics

Learning Objectives