TIC2002 Introduction to Software Engineering contains roughly a 50-50 balance of theory and practice of SE. It covers the knowledge/skills necessary to do small software projects, and as such, it is a first step towards preparing you to work in bigger SE projects, which will be done in later modules.
This module is optimized for SCALE students so that you can learn at your own pace even if you are not a full-time student: the need to attend lectures/tutorials at fixed times is low, deadlines are more flexible than usual, and the on-campus presence is optional.
e.g., Instead of traditional instructor-led tutorials, the module provides quizzes and other activities that you can do at your own time to self-test your knowledge. The instructor can be consulted if you need help with any of them.
The Schedule page is your main source of information for TIC2002. You will need to refer to it weekly. For an overview of the full schedule, refer to the Full Timeline page.
More details for the upcoming weeks will be added as the weeks progress. In general, information given for more than 1 week into the future should be treated as tentative.
Most of this will work on most mainstream Browsers, but embedded slides are best viewed using Chrome.
This book tries to layer information so that readers can decide to omit less important layers if they wish to.
More important information are in bold or highlighted while less important information are dimmed or in collapsed panels such as the below.
Tabs indicate alternative formats of the same content (e.g. video vs text). You can choose the one you like and ignore the other tabs.
Some textual description of X
Video describing X
Dotted underlines indicate some additional infotool tips (activated by hovering over it) and dashed underlines indicate modal windows (activated by clicking) containing additional information.
Tooltip ExampleThis website uses a star rating system to indicate the priority level of contents.
Meaning of some shortened headings:
: additional info
: warning
: positive message
or : important message
: error or danger to avoid
or : tip
: definition or topic
extra : tangential info, can be ignored if not interested
: Ctrl+Click to open the LO in new window/tab.
: learning outcomes
: prerequisite learning outcome
: examples
: resources
: exercises
: printable version
: preview/more info
: video
>_ : a command to be run in a terminal
: textual description
: slides
: output produced by running code
question without answer
question with answer
: tasks to do
: lecture
: tutorial
: evidence you can use to prove you have achieved a learning outcome
⏰ : deadline
Use the search box in the top navigation bar to search for keywords in the website pages. If you cannot find the content related to a keyword, let us know by posting in the forum so that we can add the missing keyword to our search index.
Follow this guide @SE-EDU/guides.
Printer-friendly version (indicated by icon) have been provided for each chapter and the whole book. You can use them for saving as pdf files or printing.
This website was generated using the MarkBind software developed at NUS. We welcome bug reports, suggestions, and contributions, to be submitted at the website issue tracker.

Damith Chatura RAJAPAKSE (Module Coordinator)
Associate Professor, NUS School of Computing
PhD, Software Engineering, NUS, 2002-2006
BSc, Computer Science & Engineering, University of Moratuwa, 1996-2001
damith[at]comp.nus.edu.sg
COM2-02-57
651 64359
https://www.comp.nus.edu.sg/~damithch
Tuesdays 6.30-9.30pm
Online + (optional: LT19)
A TIC2002 lecture + tutorial time is divided into three parts, as follows:
TIC2002_2021 (link) MS Team.Damith Chatura RAJAPAKSE) in MS Teams and send a private chat message.Lecture slides are not suitable to be used as reference materials as they have been i.e., heavy use of graphics and animationsoptimized for lecture delivery instead. Use the textbook (not slides) as your main reference. Slides can be uploaded to LumiNUS if requested, after the lecture.
This module is supported by a customized online textbook Software Engineering for Self-Directed Learners (TIC2002 edition), integrated into this module website. While it is in a dynamic Web page format, there is a way to save the main text as pdf files. Printer-friendly versions have been provided too. In addition, a PDF version of the full textbook will be provided at the start of the semester, via LumiNUS.
This module uses Java. It assumes you are familiar with C++ basics and provides lessons to help you transition from C++ to Java.
Install JDK 11 on your computer. Using other versions of Java is highly discouraged.
In some weeks, there will be some programming exercises for you to submit (on Coursemology). You should do the exercises as you learn the topics.
Focus on learning the topic rather than finishing the exercises. While these are exercises provided to self-test your knowledge, the more important thing is to read and understand the topic content. Furthermore, not all topics are tested by exercises.
Programming exercises are graded for participation.
Weekly project increments are given in the panels below:
Deadline:
Soft deadline (for the project report): Mon, Nov 8th 2359 (Monday of week 13)
Hard deadline (for all submissions): Sun, Nov 14th 2359 (Sunday of week 13)
An extra week can be given (upon request) for a small late submission penalty of -2 marks.
What's the difference between the soft deadline and the hard deadline? You can get prof's feedback on a draft of the project report up to the soft deadline. Note that feedback on project report draft will be high-level feedback only (reason: the report is graded). To receive feedback, email a draft of the report to the prof before the soft deadline.
Submissions later than the hard deadline are liable to a late submission penalty, to be fair to those who submitted on time. But given you are part-time students, late submission penalty will be more lenient than otherwise (e.g., -1 per day) and will be on a case-by-case basis.
Deliverables:
Please upload items 2, 3, 4 as three separate files. Do not put them into a single zip file.
{YourName}.jar e.g., JunHao.jarJunHao.docxInstall Zoom in your computer. Installation and login instructions are here (requires login).
When using Zoom, remember to login using the SSO option and use your NUSNET account.
Install MST in your computer. Installation and login instructions are here (requires login).
When using MST, remember to login using your NUSNET account.
The MST team used for the class is TIC2002-2021 (link).
We'll be using Git as our revision control tool (compulsory).
If you are not familiar with Git already, install SourceTree (a GUI for Git, but also contains Git) on your computer.
We'll be using GitHub for code hosting (compulsory).
Create a free GitHub account if you don't have one already.
We'll be using Coursemology for coding exercises (compulsory).
We'll be using Intellij IDE for programming. While using Intellij is not compulsory, there will be no help/instructions given for other IDEs.
Install Intellij on your computer. You may use the Community Edition (free) or the Ultimate Edition (free for students).
[40%] CA
5 points, you should earn at least 3 points).3 points if you complete at least 80% of the exercises allocated for that week.2 points, unless the activity specify a different number of points.[60%] Final Exam
If you face difficulties/doubts while learning the weekly topics, doing weekly exercises/tasks, you can
tic2002[at]comp.nus.edu.sgThere is no midterm exam. Information about the final exam is given below.
Tools: LumiNUS, Zoom, Microsoft Teams (MST), PDF scanner, PDF reader.
The webcam view should capture all four of these: your face (side view, no mask), your hands, the working area of the table, and the entire screen area of your active screen. Here is an example:

Recording of your PC screen is not required.
Only one computer screen allowed. If you have multiple screens, switch off except one. It is better if you can physically remove unused screens if possible e.g., do not keep a switched off tablet on the table.
You may split the screen though i.e., show module website in one half and the quiz in the other half.
You may not use a second laptop/computer as the web cam. Use either an external webcam or a mobile phone instead. Reason: the screen of that second computer will not be captured in the video feed.
Not allowed to use the printer or other devices during the exam.
You may use headphones during the exam.
Soft copies of notes: only PDF format is allowed. Other formats (e.g., MS Word, .txt, html) are not allowed. No limitation on what the PDF file contains or the number of PDF files to be used.
You may use any hard copies or written materials too.
The Browser should only be used to access LumiNUS and the module website (including relevant se-education.org pages e.g., Java coding standard). Accessing other websites is not allowed.
Do not use the browser to view PDFs. Reason: viewing PDF files in the browser makes it harder for invigilators to detect students accessing unauthorized websites.
Use Zoom private messages to communicate with the invigilator. Use Microsoft Teams to communicate with the prof. Communicating with others is not allowed, except with NUS IT staff (for tech help).
The quiz will not appear on LumiNUS until a few minutes before we release the password. Wait until we announce that the quiz is available to see.
When the invigilator asks you to do an identity check, turn your face towards the camera (do not adjust the camera position), move closer to the camera, and hold the pose until the invigilator tells you to go back to your working position.
If you have a doubt/query about a question, or want to make an assumption about a question, please write it down in the 'justification' text box. Do not try to communicate those with the invigilator during the exam. We'll take your doubt/query/assumption into account when grading. For example, if many had queries about a specific question, we can conclude that the question is unclear and omit it from grading.
If you encounter a serious problem that prevents you from proceeding with the exam (e.g., the password to open the quiz doesn't work), PM the invigilator using Zoom private chat (failing that, MS Teams).
If your computer crashed/restarted during the exam, try to get it up again and resume the exam. LumiNUS will allow you to resume from where you stopped earlier. However, note that there is a deadline to finish the quiz and you will overrun that deadline if you lose more than 5 minutes due to the computer outage.
Consent to invigilator un-muting your mic without asking for your permission first if Zoom asks for your consent for that feature to be enabled. This will allow the invigilator to verify your compliance with 'no communications with others' rule, without disturbing you during the exam. This is an NUS requirement for exams.
a and the justification can be OOP is only one of the choices for an SE project.Almost all questions will ask you to choose the INCORRECT statement and justify why it is incorrect.
There will be a 5-minutes toilet break after this part