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 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 (activated by hovering over it) and dashed underlines indicate modal windows (activated by clicking) containing additional information.
This website uses a topic levels system to indicate the progression of contents from basic/relevant topics to advanced/less-relevant topics.
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
: learning outcomes
: 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
: 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
dominick
[at]u.nus.edu
Tuesdays 6.30-9.30pm
COM1-0207
A TIC2002 lecture + tutorial time is divided into three parts, as follows:
TIC2002-2023 Jan-Apr
(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 instead. Use the textbook (not slides) as your main reference. Slides can be uploaded to Canvas 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 Canvas.
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: Sun, Apr 16th 2359 (Sunday of week 13)
-2
marks.-1 per day
) and will be on a case-by-case basis.Deliverables:
Please upload items 2, 3, 4 as three separate files, using the three Canvas assignments provided. Do not put them into a single zip file.
{YourName}.jar
e.g., JunHao.jar
JunHao.docx
//Solution below adapted from https://stackoverflow.com/a/16252290
{Your implementation of the reused solution here ...}
Keep track of code reuse If you reuse/adapt code from elsewhere, cite the source in code immediately. Otherwise you will not remember the source of code reuse later. Not citing the original source can land you in trouble for plagiarism.
FAQ: Can I use code generated by AI tools (e.g., CoPilot, ChatGPT)?
Answer: We don't explicitly prohibit you from using those tools but we strongly discourage you from using them in a way that hinders your learning. For example,
Other caveats:
Finally, should you still choose to use/adapt a code snippet generated by a tool, acknowledge it in the code (as a case of code reuse).
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-2023 Jan-Apr
(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.
If you encounter issues connecting Sourcetree with your GitHub account, refer to these Sourcetree Tips.
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, here are the options to seek help:
General
channel.YOUR_NAME - Help Channel
private channel we have created for each of you.tic2002@comp.nus.edu.sg
. These emails will be answered by the prof or forwarded to the TA for follow up.There is no midterm exam. Information about the final exam is given below.
This exam contains 16 MCQ questions. All questions are estimated to be equal size/difficulty.
You only need to answer 15 questions correctly to get full marks. The extra question is there to cushion you against careless mistakes or misinterpreting a question.
Questions will appear in random order.
You will not be able to go back to previous questions.
Reasons:
1. to minimize opportunities for collusion
2. not unreasonable for the materials tested and the proficiency level expected -- i.e., when using this knowledge in a real life SE project discussion, it will be rare for you to go back to revise what you said earlier in the discussion
Duration: 45 minutes (recommended: allocate 2.5 minutes per question, which gives you a 5 minutes buffer)
Most MCQ question will also have a follow up question requiring a short answer.
Here is an example question. The answer is a
and the answer to the follow-up question can be OOP is only one of the choices for an SE project
.
A
, B
, C
.