CSCI 5802 01: Software Tools and Practices

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

Public Instructor Information

Instructor Title: Instructor
Instructor Professional Qualifications: M.S., Computer Science & Engineering, Wright State University, 1991; B.S., Computer Science & Mathematics, Bowling Green State University, 1986
Instructor Office Location: Meshel Hall - 339B
Instructor Office Phone: 330-941-3134

Private Instructor Information

Log in to view more

Course Description

5802. Software Tools and Practices. A course that focuses on the different tools and techniques that software engineers typically use while developing software. Topics include current software engineering tools and practices, software testing, software architecture, version control systems, build and make systems, debuggers, static analysis tools, dynamic analysis tools, and design patterns. Students gain experience in multiple environments (Windows and a UNIX-based environment). Prereq.: Junior standing and CSIS 3700 or CSCI 6901. 3 s.h.

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.  

Additional Course Materials

Log in to view more

Course Learning Outcomes/Objectives/Goals

Log in to view more

How to Succeed in This Course

Log in to view more

Attendance Expectations

Log in to view more

Late Work Submission Policy

Log in to view more

Additional Course Expectations

Log in to view more

Artificial Intelligence Policy Statement

Log in to view more

Assignments/Assessments

Log in to view more

Grading and Grading Scale

Log in to view more

University Policies

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.