CS 427

CS 427 - Software Engineering I

Spring 2026

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Software Engineering ICS427CSP78175PKG3 -    Darko Marinov
Software Engineering ICS427CSP78175PKG3 -   Illini Center Darko Marinov
Software Engineering ICS427DS378284ONL3 -    Darko Marinov
Software Engineering ICS427DS474281ONL4 -    Darko Marinov
Software Engineering ICS427MC378282PKG3 -    Darko Marinov
Software Engineering ICS427MC378282PKG3 -  ARR Illini Center Darko Marinov
Software Engineering ICS427MC478177PKG4 -   Illini Center Darko Marinov
Software Engineering ICS427MC478177PKG4 -    Darko Marinov
Software Engineering ICS427SE378283PKG3 -    Darko Marinov
Software Engineering ICS427SE378283PKG3 -    Darko Marinov
Software Engineering ICS427SE474274PKG4 -    Darko Marinov
Software Engineering ICS427SE474274PKG4 -    Darko Marinov
Software Engineering ICS427SEU74273PKG3 -    Darko Marinov
Software Engineering ICS427SEU74273PKG3 -    Darko Marinov
Software Engineering ICSE426SE378287PKG3 -    Darko Marinov
Software Engineering ICSE426SE378287PKG3 -    Darko Marinov
Software Engineering ICSE426SE474280PKG4 -    Darko Marinov
Software Engineering ICSE426SE474280PKG4 -    Darko Marinov
Software Engineering ICSE426SEU74278PKG3 -    Darko Marinov
Software Engineering ICSE426SEU74278PKG3 -    Darko Marinov

Official Description

Software process, analysis and design. Software development paradigms, system engineering, function-based analysis and design, and object-oriented analysis and design. Course will use team-projects for hands-on exercises. Course Information: Same as CSE 426. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 222, CS 240, CS 241, CS 340, CS 341 or ECE 391.

Course Director

Text(s)

Varies by semester, using course notes available for free and linked from the course Wiki

Learning Goals

Compare & Contrast different software engineering and development processes. (1), (2), (4), (6)
Learn a particular process (XP: user stories, test-driven development, refactoring, pair programming). (1), (2), (4), (6)
Improve activities that are common to most processes (configuration management, testing, metrics, documentation, reverse engineering, refactoring). (1), (2), (4), (6)
Contribute effectively to a team in maintaining existing large code (CS427) ot developing new code (CS428/9). (1), (2), (3), (4), (5), (6)
Communicate effectively, both orally and in writing, with peers and software customers (TAs), and describe your process (the latter for CS429). (3), (5)
Manage/organize software projects (requirements, architecture, design, documentation, management, planning). (1), (2), (3), (4), (5), (6)
Use a set of modern software development services (e,g., GitHub, Travis) (2), (3), (5), (6)

Topic List

(CS 427) Software development processes
(CS 427) Software configuration management
(CS 427) Testing
(CS 427) Debugging
(CS 427) Component-based software engineering
(CS 427) Refactorings
(CS 427) Code smells
(CS 427) Reverse Engineering
(CS 427) Metrics
(CS 427) Design Patterns
(CS 427) Software Documentation
(CS 427) Large code
(CS 428/9) Managing Software Projects
(CS 428/9) Requirements
(CS 428/9) UML
(CS 428/9) Design
(CS 428/9) Quality Assurance
(CS 428/9) Non-XP development processes
(CS 428/9) User Interface Design
(CS 428/9) Performance/Security/Web Engineering

Last updated

2/15/2019