CSCI 5802 - Software Tools and Practices
Fall 2026 Syllabus, Section 01, CRN 44236,
Credit hours: 3
Course Meeting Times
Log in to view more
Instructor
Michael Costarella
Email: macostarella@ysu.edu
Course Description
This course covers the tools and techniques software engineers use while developing software: version control systems, build and make systems, software testing, debuggers, static and dynamic analysis tools, software architecture, and design patterns — practiced in two environments, Windows and UNIX. Instead of toy exercises, every tool is applied to one real production system: the Ohio Counties civic-data application and its ecosystem of 200+ per-county apps. React, TypeScript, Git, GitHub Actions, and public data are the environment in which you practice; the tools and practices are the course.
The course runs as fourteen modules in five units. Each module pairs lecture content and readings from the real OhioCounties source with a hands-on lab. The semester project: each student adopts a county-style civic-data app (or builds a small hub of their own) and, module by module, brings it under professional discipline — versioned, built, tested, analyzed, debugged, documented, and shipped from CI.
Course website (single source of truth for modules, labs, and readings): https://mikecostarella.github.io/MyWebSiteDevelopmentCourse/
Course Readings
| Group | Title | Author | ISBN |
|---|---|---|---|
| Required | Pro Git (free online) | Scott Chacon & Ben Straub | |
| Optional | TypeScript Handbook (free online) | Microsoft | |
| Optional | The Only GitHub Guide You'll Ever Need (video) | Corbin Brown | |
| Optional | React documentation (react.dev) | Meta / React team | |
| Optional | GNU make manual (free online) | Free Software Foundation | |
| Optional | npm documentation (docs.npmjs.com) | npm / GitHub | |
| Optional | Vite guide (vite.dev) | Vite team | |
| Optional | GitHub Actions documentation | GitHub | |
| Optional | GitHub Codespaces documentation | GitHub | |
| Optional | Chrome DevTools documentation | Google Chrome team | |
| Optional | Vitest documentation (vitest.dev) | Vitest team | |
| Optional | React Testing Library documentation | Testing Library | |
| Optional | Playwright documentation (playwright.dev) | Microsoft | |
| Optional | typescript-eslint documentation | typescript-eslint team | |
| Optional | MDN Web Docs | Mozilla |
All readings are free online; module pages on the course site cite the specific chapters or sections each lab depends on.
The course readings are subject to change in the event of extenuating circumstances, research developments, current events, and/or to ensure better learning.
Assignments/Assessments
Log in to view more
Schedule of Topics and Assignments
| Week of | Reading(s) | Proposed Topic | Due/To Prepare for Class |
|---|---|---|---|
| 8/24 | Student Setup Guide (course site) | Module 1 — The engineer's toolbox; the OhioCounties system; three environments | Setup complete; Lab 1 |
| 8/31 | Pro Git chs. 1–3, 7, 10 | Module 2 — Version control: Git as database, workflow, communication medium | Lab 2 |
| 9/7 | GNU make "Intro to Makefiles"; npm & Vite docs | Module 3 — Build and make systems (no class Mon 9/7 — Labor Day) | |
| 9/14 | GitHub Actions & Codespaces docs | Module 3 lab; Module 4 — CI: GitHub Actions | Lab 3 |
| 9/21 | Chrome DevTools debugger docs | Module 4 lab; Module 5 — Debuggers | Lab 4 |
| 9/28 | Vitest docs | Module 5 lab; Module 6 — Unit testing | Lab 5 |
| 10/5 | Vitest mocking & coverage guides | Module 6 lab; Module 7 — Test design | Lab 6 |
| 10/12 | React Testing Library; Playwright docs | Module 7 lab; Module 8 — Integration & E2E testing | Lab 7 |
| 10/19 | TS Handbook (narrowing, strictness); typescript-eslint | Module 8 lab; begin Module 9 — Static analysis | Lab 8 |
| 10/26 | DevTools performance & memory panels | Module 9 lab; Module 10 — Dynamic analysis | Lab 9; Checkpoint 1 due Mon 10/26 |
| 11/2 | Course site module pages | Module 10 lab; Module 11 — Software architecture | Lab 10 |
| 11/9 | Course site module pages | Module 11 lab; Module 12 — Design patterns | Lab 11; Checkpoint 2 due Mon 11/9 |
| 11/16 | Course site module pages | Module 12 lab; Module 13 — Maintenance | Lab 12 |
| 11/23 | Module 13 lab (no class Wed 11/25 — Thanksgiving) | Lab 13 | |
| 11/30 | Module 14 — Capstone: retrospectives, presentation prep | ||
| 12/7 | Final presentations | Final project + presentation due |
The course schedule, policies, procedures, and assignments in this course are subject to change in the event of extenuating circumstances, by mutual agreement, and/or to ensure better learning.