CS 471 Fall 2020: Senior Capstone I

CS 471 Fall 2020
Senior Capstone I

Department: Computer Science, UAF
Instructor: Glenn G. Chappell
Office Hours: No face-to-face office hours during fall 2020; private Zoom sessions are available by appointment
Office phone: (474-)5736
E-mail: ggchappell@alaska.edu
Class meeting Zoom: here (passcode distributed via e-mail)


Course Materials

Materials are listed with the most recent at the top.

Week Class Meetings
R: required; see Blackboard for class-meeting videos
Readings & Homework Handouts & Code
See Git repository for code
Week 15
  • R 12/4: Course wrap-up
    Slides [Google Slides]
  • R 12/2: Student presentations (see schedule)
  • R 11/30: Student presentations (see schedule)
Week 14
  • 11/27: No class meeting (Thanksgiving)
  • 11/25: No class meeting (Thanksgiving)
  • R 11/23: Student presentations (see schedule)
Week 13
  • R 11/20: Code review (cont’d)
  • 11/18: No class meeting (do Code Review Activity #2)
  • R 11/16: Code review (cont’d)
  • elevator.cpp [C++ source]
    Elevator simulator
    For Code Review Activity #2
Week 12
  • 11/13: No class meeting (do Code Review Activity #1)
  • R 11/11: Code review
    Slides [Google Slides]
  • R 11/9: Usability (cont’d)
  • merge_sort.h [C++ header]
    Merge Sort (Recursive)
    There is no associated source file.
    For Code Review Activity #1
Week 11
  • 11/6: No class meeting (do Usability Testing Activity #2)
  • R 11/4: Usability (cont’d)
  • 11/2: No class meeting (do Usability Testing Activity #1)
Week 10
  • R 10/30: Usability (cont’d)
  • 10/28: Usability (cont’d)
  • R 10/26: Usability
    Slides [Google Slides]
Week 9
  • R 10/23: Case studies (cont’d)
  • R 10/21: Scheduling of presentations; case studies (cont’d)
  • R 10/19: Where are we?; case studies
Week 8
  • 10/16: No class meeting (Take-Home Midterm Exam)
  • 10/14: No class meeting (Take-Home Midterm Exam)
  • R 10/12: Review
Week 7
  • 10/9: Unit testing (cont’d)
  • R 10/7: Unit testing (cont’d)
  • R 10/5: Unit testing (cont’d)
Week 6
  • R 10/2: Unit testing (cont’d)
  • 9/30: Overview of software testing (cont’d); unit testing
    Slides [Google Slides]
  • 9/28: Overview of software testing
    Slides [Google Slides]
  • square.h [C++ header]
    Header for function template square
    There is no associated source file.
  • square_test.cpp [C++ source]
    Test program for function template square
    Uses the “doctest” unit-testing framework, version 2
    Requires doctest.h, square.h
  • square.py [Python 3 source]
    Function 'square': example of doctests
Week 5
  • R 9/25: Kanban (cont’d)
  • R 9/23: Kanban
    No Slides
  • 9/21: No class meeting (watch the video “Agile Project Management with Kanban”)
Week 4
  • 9/18: Waterfall model (cont’d)
  • R 9/16: Requirements & user stories (cont’d); Waterfall model
    Slides [Google Slides]
  • R 9/14: Requirements & user stories (cont’d)
Week 3
  • R 9/11: Requirements & user stories (cont’d)
  • R 9/9: Requirements & user stories
    Slides [Google Slides]
  • 9/7: No class meeting (Labor Day)
Week 2
  • R 9/4: Writing as a software professional
    Slides [Google Slides]
  • R 9/2: Overview of software engineering (cont’d)
  • 8/31: Overview of software engineering (cont’d)
Week 1
  • 8/28: Overview of software engineering (cont’d)
  • R 8/26: Overview of software engineering
    Slides [Google Slides]
  • R 8/24: Course overview
    Slides [Google Slides]
Dates marked R are required days: synchronous attendance is mandatory.

External links last checked September 30, 2020.
Git is the the version-control software used in this class. This site includes downloads and a helpful tutorial.
Class Git Repository
Source code for the class will be kept in this repository.
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.
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 much faster compile times.
Links to supplemental readings & videos will be posted here as they are assigned. Links to these will also be in the “Readings & Homework” column of 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.
The code I’m still ashamed of
A post on practical software-development ethics by Bill Sourour, found on freeCodeCamp.
Agile Project Management with Kanban
A video of a 2016 talk on Kanban done at Google, by Eric Brechner, author of one of our texts.