A balanced and iterative introduction to Software Engineering...
CS2113/T is an introductory Software Engineering module. The module covers the essentials of Object-oriented programming in addition to SE. It covers roughly a 50-50 balance of basic SE theory and practice that a student needs to know before going for SE internships in the industry or taking
On the theory side, this module is supported by a customized online textbook Software Engineering for Self-Directed Learners, integrated into this module website.
The practice side of this module is mainly covered by a team project that runs in two phases. The first phase provides opportunities to familiarize with Java programming and OOP. In the second phase, students are expected to enhance the codebase of the first phase to either build a command line based personal assistant or evolve it into a different project.
Given below is a summary of what the module covers and does not cover.
Topic | Covered | Not covered |
---|---|---|
Java | Used heavily, but not taught extensively | syntax (reason: expected to self-learn) |
OOP | Used in a non-trivial project, |
advanced OOP |
SE tools/practices |
|
those specific to start-ups |
Modeling |
|
intensive |
Requirements |
|
rapid prototyping, heavy UI design, designing a product from scratch |
Documentation | Documentation targeting end users (example) as well as those targeting developers (example) | Marketing materials |
Project Management | Iterative delivery of a product, Working collaboratively with team members, on-site as well as remotely | Setting up project infrastructure from scratch |
Testing |
|
|
Applications domains | Cross-platform desktop applications | Web programming, Mobile programming, Database programming |