CS 471 Fall 2025: Senior Capstone I


CS 471 Fall 2025
Senior Capstone I

Department: Computer Science, UAF
Instructor: Glenn G. Chappell
Office: 539 Duckering
Office Hours: In person 11:45–12:45 MWF, 3:30–4:00 MW on fall 2025 class days, or by appointment; private Zoom meetings available on request
E-mail: ggchappell@alaska.edu

Announcements

Course Materials

Materials are listed with the most recent at the top.

Week Class Meetings Readings & Homework Handouts & Code
See Git repository for code
Week 7
Oct 6–Oct 10
  • Oct 10: Unit testing (cont’d)
  • Oct 8:  Presentations overflow unit testing (cont’d)
  • Oct 6: Mini-project presentations #2
  • pps_test.cpp [C++ source]
    Test suite for prettyPrintSquare
    Uses doctest unit-testing framework
    Requires doctest.h, pps.hpp
  • use_pps.cpp [C++ source]
    Simple main program for prettyPrintSquare
  • pps.hpp [C++ header]
    Header for prettyPrintSquare
  • pps.cpp [C++ source]
    Source for prettyPrintSquare
Week 6
Sep 29–Oct 3
  • Oct 3: Unit testing (cont’d)
  • Oct 1:  Presentations overflow unit testing (cont’d)
  • Sep 29: Mini-project presentations #1
  • use_cube_lib.py [Python 3 source]
    Main program for module cube_lib
    Requires cube_lib.py
  • cube_lib.py [Python 3 source]
    Importable module with doctests
    Executing as stand-alone program runs doctests
  • squarer_test.cpp [C++ source]
    Test suite for class Squarer
    Uses doctest unit-testing framework
    Requires doctest.h, squarer.hpp
  • squarer.hpp [C++ header]
    Header for class Squarer
    There is no associated source file
Week 5
Sep 22–Sep 26
  • Sep 26: Unit testing
    Slides [Google Slides]
  • Sep 24: Overview of software testing
    Slides [Google Slides]
  • Sep 22: Mini-project presentations #0
 
Week 4
Sep 15–Sep 19
  • Sep 19: Software architecture
    Slides [Google Slides]
  • Sep 17: Kanban (cont’d)
  • Sep 15: Kanban (cont’d); mini-project kick-off
    Slides [Google Slides]
 
Week 3
Sep 8–Sep 12
  • Sep 12: Kanban
    Video [YouTube]
  • Sep 10: Requirements & user stories (cont’d)
  • Sep 8: Requirements & user stories
    Slides [Google Slides]
 
Week 2
Sep 1–Sep 5
  • Sep 5: Overview of software development processes (cont’d)
  • Sep 3: Overview of software development processes
    Slides [Google Slides]
  • Sep 1: No class meeting (Labor Day)
Week 1
Aug 25–Aug 29
  • Aug 29: Communicating as a software professional (cont’d)
  • Aug 27: Communicating as a software professional
    Slides [Google Slides]
  • Aug 25: Course introduction
    Slides [Google Slides]

External links last checked 2025-10-03.
Git
Git is the the version-control software used in this class. This site includes downloads and a helpful tutorial.
Learn Git Branching
An excellent tutorial. If you are familiar with the Git operations clone, pull, push, add, and commit, but you are having trouble wrapping your head around branching, then this is for you.
Class Git Repository
Source code used in the class will be available in this repository.
doctest: The fastest C++ single-header testing framework
The website (on GitHub.com) for doctest, a C++ unit-testing framework. doctest is simple and easy to use, it comprises only a single header file, and it is available as a free download distributed under a FLOSS license. doctest is similar to the older Catch unit-testing framework, but it has faster compile times.
doctest — Test interactive Python examples
The official documentation for the Python standard library doctest module (which is unrelated to the C++ unit-testing framework of the same name).
Manifesto for Agile Software Development
The original statement of the Agile philosophy, from 2001.
Trello
Web-based software that allows for online Kanban boards.
Jason Turner’s C++ Best Practices
An excellent page with recommendations on C++ development tools and their use. This is my primary source for which compiler warnings to enable—among other things.
Links to supplemental readings & videos will be posted here as they are assigned. Links to these will also be in the Course Materials section, above.
Why does the C++ standard ship every three years?
Herb Sutter’s answer to the question in the title, this blog post has worthwhile things to say about software project management in general. From the Sutter’s Mill blog.
Agile Project Management with Kanban: Eric Brechner Presentation [YouTube]
A presentation about Kanban at Microsoft by the author of our recommended Kanban text.