Courses Taught
Forty-one courses across computer science, computer engineering, and electrical engineering at Shippensburg University (2002–2021). The through-line is systems thinking — operating systems, embedded hardware, security, AI, databases, and software methodology — taught from first principles rather than platform manuals.
Italicized entries were created or significantly revised by Tom Briggs.
Related narrative: Teaching to Last: Technology-Agnostic Engineering Education · Building Engineering Programs & ABET · Constraint Generation and the Commitment to Evidence · Curriculum artifacts
Computer & Electrical Engineering
- CMPE210 — Network Engineering — Protocol stacks, routing, VPNs, and distributed systems; grounded in campus-scale and statewide infrastructure work.
- CMPE220 — Computer Organization — 5-stage MIPS32 pipeline with hazard detection; design history as analytical tool. Artifact: MIPS Pipeline Visualizer.
- CMPE230 — Computer Security — Authentication, access control, PKI, and threat modeling across systems and network boundaries.
- CMPE320 — Operating Systems — Bootable kernel with memory management and process scheduling; live design walkthroughs including diagnosing wrong turns. See Teaching to Last.
- CMPE322 — Microcontrollers — Technology-agnostic embedded methodology: sensorless BLDC motor control, protocol implementation, hardware/software boundary. Artifacts: BLDC Controller, Tiva USB Creator.
- CMPE410 — Realtime & Mobile Development — Real-time constraints, scheduling, and mobile/embedded integration.
- CMPE411 — Advanced Operating Systems — Bootable kernel in Assembly/C with memory management and process scheduling. Artifact: NanoKernel.
- CMPE420 — Digital & Reconfigurable Computing — FPGA design and reconfigurable logic; SystemVerilog I2C controller developed alongside an instructional video series. Artifact: I2C in Verilog.
- CMPE498 — Engineering Design
- CMPE499 — Engineering Research — Faculty-supervised undergraduate research leading to thesis-quality work and conference presentations.
- ELEC100 — Programming for Engineers — First programming course for engineering majors; problem decomposition and testing, developed years before degree programs existed.
- ELEC422 — High-Speed Circuits — High-speed digital circuit design and signal integrity.
- ENGR110 — Modeling & Simulation — Engineering modeling, simulation, and analysis for first-year engineering students.
Computer Science
- CPS253 — Computer Science I
- CPS254 — Data Structures and Abstract Data Types
- CSC103 — Overview of Computer Science
- CSC106 — Computer Science I Lab
- CSC110 — Computer Science I
- CSC111 — Computer Science II
- CSC180 — Microcomputer BASIC
- CSC220 — Computer Organization — CS-track computer organization; pipeline and architecture concepts aligned with the engineering curriculum.
- CSC254 — Computer Science II
- CSC310 — Design & Analysis of Algorithms
- CSC320 — Operating Systems
- CSC371 — Database Management Systems — Relational design, query optimization, and data modeling for application developers.
- CSC394 — Special Topics: Semantic Web — OWL ontologies, reasoning, and constraint generation; curriculum tied to Ph.D. research. See OWL constraint generation.
- CSC394 — Special Topics: Computational Music — Algorithms and computation applied to digital music: representation, synthesis, and analysis.
- CSC420 — Embedded & Realtime — CS-track embedded systems with real-time constraints; methodology aligned with CMPE322.
- CSC434 — Web Programming — Server-side and client-side web development; dynamic applications and multi-tier architecture.
- CSC447 — Operating Systems
- CSC462 — Artificial Intelligence
- CSC463 — Introduction to Robotics
- CSC476 — Artificial Intelligence
- CSC499 — Student Research & Design
- HON103 — Honors Overview of Computer Science
Graduate
- CSC500 — Discrete Structures
- CSC520 — Computer Architectures
- CSC521 — Operating Systems
- CSC546 — Artificial Intelligence
- CSC560 — Database Management Systems
- CSC594 — Semantic Web — Graduate seminar on OWL, description logics, and automated reasoning; research-oriented treatment of semantic web technologies. See OWL constraint generation.
Curriculum Artifacts by Topic
Selected open-source teaching artifacts mapped to courses. Full catalog: /archive/projects.
| Topic | Courses | Artifact |
|---|---|---|
| Operating systems | CMPE320, CMPE411 | NanoKernel |
| Computer architecture | CMPE220, CSC220 | MIPS Pipeline Visualizer |
| Embedded systems | CMPE322, CSC420 | BLDC Controller, Tiva USB Creator |
| FPGA / reconfigurable | CMPE420 | I2C in Verilog |
| Artificial intelligence | CSC462, CSC476, CSC546 | Search, Knowledger, Connect Four AI |
| Machine learning | CSC546 (research integration) | Clustering, CompositeKernel |
| Semantic web | CSC394, CSC594 | JPDomainBuilder |