Apr 14, 2026  
2025 -2026 Catalog 
    
2025 -2026 Catalog
Add to My Courses (opens a new window)

CSC 102 - Principles of Software Engineering


This course will introduce the student to the basic principles of good software engineering: Modularity, Abstraction, Encapsulation, DRY (Don’t Repeat Yourself), KISS (Keep It Simple Stupid), YAGNI (You Ain’t Gonna Need It), Maintainability, and Reusability.  The software development cycle will be discussed; requirements, flow charting, UML (Unified Modeling Language) diagrams, Finite State Machines (FSM), Test-Driven Development (Unit, Component, Subsystem, and System), and iterative review.  Scripting vs. Structured Programming vs. Object-Oriented Programming vs. State Driven Programming will be examined.  Common industry tools that are used for software engineering will be utilized; GCC, GDB, CMake, Makefiles, GitHub, and GitHub Classroom.

1 Semester Credit(s)

Laboratory/Experience Hours: N/A
Prerequisite(s): N/A
Corequisite(s): N/A
Repeatable for Credit: No
Core Course: No
Grade Type: LT
Typically Offered: Fall



Add to My Courses (opens a new window)