CS 471 Fall 2024: Senior Capstone I


CS 471 Fall 2024
Senior Capstone I

Department: Computer Science, UAF
Instructor: Glenn G. Chappell
Office: 539 Duckering
Office Hours:  11:45–12:45 MWF, 2:15–2:45 MW on fall 2024 class days,  or by appointment
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
Finals
Dec 9–Dec 13
  • Dec 11: Final Exam period 10:15 am–12:15 pm—Case Study Presentations in the classroom
 
Week 15
Dec 2–Dec 6
  • Dec 6: Course wrap-up; discussion of spring project proposals
  • Dec 4: Software licensing (cont’d)
  • Dec 2: Software licensing
    Slides [Google Slides]
 
Week 14
Nov 25–Nov 29
  • Nov 29: No class meeting (Fall Break)
  • Nov 27: No class meeting (Fall Break)
  • Nov 25: Code review (cont’d)
 
  • Code Review Activity #2 [PDF]
    Distributed in class Mon, Nov 25
  • elevator.cpp [C++ source]
    For Code Review Activity #2
Week 13
Nov 18–Nov 22
  • Nov 22: Code review (cont’d)
  • Nov 20: Presentations overflow; code review
    Slides [Google Slides]
  • Nov 18: Topic introduction presentations; case study kick-off
  • Code Review Activity #1 [PDF]
    Distributed in class Fri, Nov 22
  • solve.cpp [C++ header]
    For Code Review Activity #1
Week 12
Nov 11–Nov 15
  • Nov 15: Case studies (cont’d)
    Slides [Google Slides]
  • Nov 13: Case studies (cont’d)
  • Nov 11: Case studies
Week 11
Nov 4–Nov 8
  • Nov 8: Usability (cont’d)
  • Nov 6: Usability (cont’d)
  • Nov 4: Usability (cont’d)
 
Week 10
Oct 28–Nov 1
  • Nov 1: Usability (cont’d)
  • Oct 30: Usability (cont’d)
  • Oct 28: Where are we?; usability; topic introduction kick-off
    Slides [Google Slides]
 
Week 9
Oct 21–Oct 25
  • Oct 25: No class meeting (take-home Midterm Exam)
  • Oct 23:  Presentations overflow  Class meeting canceled
  • Oct 21: [Class held via Zoom] Mini-project presentations #4
 
Week 8
Oct 14–Oct 18
  • Oct 18:  Names, times, and numbers (cont’d)  Class meeting canceled
  • Oct 16:  Presentations overflow ;  names, times, and numbers
    Slides [Google Slides]
  • Oct 14: Mini-project presentations #3
 
Week 7
Oct 7–Oct 11
  • Oct 11: Unit testing (cont’d)
  • Oct 9:  Presentations overflow ;  unit testing (cont’d)
  • Oct 7: Mini-project presentations #2
  • pps_test.cpp [C++ source]
    Test suite for prettyPrintSquare
    Uses doctest unit-testing framework
    Requires doctest.h, pps.hpp
  • pps_main.cpp [C++ source]
    Simple main program for prettyPrintSquare
    Requires pps.hpp
  • pps.hpp [C++ header]
    Header for prettyPrintSquare
Week 6
Sep 30–Oct 4
  • Oct 4: Unit testing (cont’d)
  • Oct 2:  Presentations overflow ;  unit testing (cont’d)
  • Sep 30: 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
  • cube_prog.py [Python 3 source]
    Stand-alone program with 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 23–Sep 27
  • Sep 27: Unit testing
    Slides [Google Slides]
  • Sep 25: Overview of software testing
    Slides [Google Slides]
  • Sep 23: Mini-project presentations #0
 
Week 4
Sep 16–Sep 20
  • Sep 20: Software architecture
    Slides [Google Slides]
  • Sep 18: Kanban (cont’d)
  • Sep 16: Kanban (cont’d); mini-project kick-off
    Slides [Google Slides]
 
Week 3
Sep 9–Sep 13
  • Sep 13: Kanban
    Video [YouTube]
  • Sep 11: Requirements & user stories (cont’d)
  • Sep 9: Requirements & user stories
    Slides [Google Slides]
 
Week 2
Sep 2–Sep 6
  • Sep 6: Overview of software development processes (cont’d)
  • Sep 4: Overview of software development processes
    Slides [Google Slides]
  • Sep 2: No class meeting (Labor Day)
Week 1
Aug 26–Aug 30
  • Aug 30: Communicating as a software professional (cont’d)
  • Aug 28: Communicating as a software professional
    Slides [Google Slides]
  • Aug 26: Course introduction
    Slides [Google Slides]

External links last checked 2024-12-06.
Git
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 faster compile times.
Manifesto for Agile Software Development
The original statement of the Agile philosophy, from 2001.
Creative Commons
The official website of Creative Commons, issuers of licenses (not for software!) aimed at allowing new creative works to make use of existing works.
Licenses
A list of software licenses, with comments on them, from the GNU Project (allied with the Free Software Foundation).
Open Source Initiative
The official website for the Open Source Initiative.
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 text.