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
chan.weizhong
[at]u.nus.edu
Wednesdays 6.30-9.30pm
Online + (optional: COM1-02-06)
A TIC2002 lecture + tutorial time is divided into three parts, as follows:
TIC2002-2022
(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): Wed, Apr 13th 2359 (Wednesday of week 13)
Hard deadline (for all submissions): Sun, Apr 17th 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.jar
JunHao.docx
Install 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-2022
(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.sg
There is no midterm exam. Information about the final exam is given below.
a
and the justification can be OOP is only one of the choices for an SE project
.A
, B
, C
(and the rationale is A
and B
).