Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

[ARCHIVED 2020] SPD 1.4 Testing and Architecture

Course Description

This course focuses on advanced topics in testing and code craftsmanship. Students apply these concepts to existing portfolio projects, adding a further layer of sophistication. Topics covered include: types of testing, automated testing, design patterns, open source coding, and navigating massive codebases. The course also covers guiding principles in software development that help professional developers make decisions on what language, frameworks, and construction practices to use while building projects. By the end of the course, students will have refactored projects to have better testing and architecture, and built an additional solo project incorporating course principles.


Learning Outcomes

Students by the end of the course will be able to ...

  1. Compare and contrast software construction options and make informed decisions around which to pick.
  2. Produce elegant pseudocode to quickly describe how to solve a problem.
  3. Practice techniques to improve the quality and craftsmanship of their software.
  4. Design and implement code refactors.
  5. Apply debugging and testing best practices to more easily resolve bugs.


Course Dates: Monday, April 1 – Wednesday, May 15, 2019 (7 weeks)
Class Times: Monday and Wednesday at 3:30–5:20pm (14 class sessions)

Class Date Topics
1 Monday, April 1 Construction/Key Decisions
2 Wednesday, April 3 Pseudocode/Collaborative Construction
3 Monday, April 8 Lab: Pseudocode
4 Wednesday, April 10 Software Quality Landscape
5 Monday, April 15 Themes in Software Craftsmanship
6 Wednesday, April 17 Lab: Refactoring
7 Monday, April 22 Developer Testing
8 Wednesday, April 24 Lab: Testing
9 Monday, April 29 Lab: Blog Post
10 Wednesday, May 1 Debugging/Refactoring
11 Monday, May 6 Ticketing
12 Wednesday, May 8 Code-Tuning Strategies
13 Monday, May 13 Final Class: Review Session
14 Wednesday, May 15 Final Exam

Class Assignments

There will be three primary assignments for this course in addition to the lab assignments. These primary assignments are:

Please view descriptions and due dates on the assignments here

Lab Assignments

These are to be finished by the end of the course

Pseudocode (Tracker columns F, G)

  • Pick a function to write psuedocode for
  • Psuedocode for that chosen function

Refactoring (Tracker columns H, I, J)

  • Written plan for how you're going to implement your refactor
  • Link to the commit containing your Refactored code
  • Score on the refactor based on the refactor rubric
  • Name of the person(s) who graded your refactor
  • Link to the commit containing the updates you made to your refactor based on feedback from the rubric

Testing (Tracker column M)

  • link to tests written for your chosen project


To pass this course you must meet the following requirements:

  • Complete all required tutorials
  • Pass all projects according to the associated project rubric
  • Pass the final summative assessment >=75%
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Make School Course Policies


SPD 1.4: Testing and Architecture







No releases published


No packages published

Contributors 4