This site is not ready yet! The updated version will be available soon.
CS2103/T 2020 Jan-Apr
  • Full Timeline
  • Week 1 [Aug 12]
  • Week 2 [Aug 19]
  • Week 3 [Aug 26]
  • Week 4 [Sep 2]
  • Week 5 [Sep 9]
  • Week 6 [Sep 16]
  • Week 7 [Sep 30]
  • Week 8 [Oct 7]
  • Week 9 [Oct 14]
  • Week 10 [Oct 21]
  • Week 11 [Oct 28]
  • Week 12 [Nov 4]
  • Week 13 [Nov 11]
  • Textbook
  • Admin Info
  • Report Bugs
  • Forum
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • Java Coding Standard
  • Participation Marks List

  • ¬†Individual Project (iP):
  • Individual Project Info
  • Duke Upstream Repo
  • iP Code Dashboard
  • iP Showcase

  • ¬†Team Project (tP):
  • Team Project Info
  • Team IDs
  • Addressbook-level3
  • Addressbook-level 1,2,4
  • tP Code Dashboard
  • tP Showcase
  • Using this Website


    CS2103/T Software Engineering

    A balanced, iterative, and brown-field introduction to Software Engineering...

    CS2103/T is an introductory Software Engineering module. It has a 50-50 balance of basic SE theory knowledge and practical skills that you need to gain before industry internships or higher-level project modules. The module follows an iterative approach to covering topics. It is also one of the rare SE modules that includes a brown-field project, in addition to a green-field project.

    • 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, you will first ramp up your technical skills by doing a small individual project (green-field) in which you will develop a personal assistant chatbot called Duke. Then, you will move to a team project (brown-field) in which you will take over an existing project AddressBook-Level3 (AB3) -- a relatively small yet non-trivial (6 KLoC) generic product -- and enhance it into a better product or evolve it into a different product.

    Given below is a summary of what the module covers and does not cover.

    Topic Covered Not covered
    Java Used heavily, but not taught syntax (reason: expected prerequisite knowledge)
    OOP Used in a non-trivial project, intermediate OOP principles basics (reason: expected prerequisite knowledge)
    SE tools/practices those typically used in a mature, high-rigor SE project those specific to start-ups
    Modeling Some UML notations (sufficient to be able to describe SE artifacts using models, such as seen in this Developer Guide of AB3) intensive upfront design modeling
    Requirements Some lightweight techniques to gather and document project 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 basic developer testing and user testing testing for non-functional aspects
    Applications domains Cross-platform desktop applications Web programming, Mobile programming, Database programming


    Using this Website