An iterative introduction to Software Engineering...
CS2113 is an introductory Software Engineering course covering a balance of basic SE theory and practical skills needed to work in a project that has a software component. The course follows an to covering topics. The course also introduces you to the Java programming language, the OOP paradigm, and some basic UML models.
The theory side of this course is supported by a customized online textbook Software Engineering for Self-Directed Learners, integrated into this course website.
On the practice side, you will first ramp up your technical skills by doing a small individual project in which you will develop a personal assistant chatbot called Duke. Then, you will move to a team project in which you will build another small app while working as a team.
What does mean to 'follow an iterative approach in covering topics'?
It means, we cover a little bit of at first and then iteratively go deeper into them later, revisiting each aspect many times over the course of the semester. In contrast, a sequential approach would have covered one SE aspect before moving to the next (e.g., teach the requirements aspect completely before moving to the design aspect).
In each week, we cover topics that are most relevant to the project tasks that you are expected to do around that time.
This way of 'jumping around' topics feels chaotic but consider the benefits:
To help you cope with the non-sequential progression of topics, this course website contains two versions of the topics.