repl.it
linkTIC2002 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.
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.
Less important info
Less important info
Less important info
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
This website uses a star rating system to indicate the priority level of contents.
Relevant: [
We use a star rating system indicate the importance of module components. Start with things that are rated one-star and progress to things with more stars. Things rated four stars are optional.
Star ratings for topics (and textbook sections):
One-star topics : The topics you need to achieve just to keep up with the module. We recommend you to achieve these topics if you want to pass the module (i.e. up to a C grade).
Two-stars topics : Can get you up to a B+.
Three-stars topics : Can get you up to an A+.
Four-stars topics : Optional. Not examinable. For your own knowledge.
topics marked with two icons e.g., : , : , : , : are relevant topics you are expected have achieved in prerequisite modules. They are given for reference only. The number of stars indicate the progression of topics, similar to the star rating system above i.e., one-star prerequisite topics are the most basic and the most important. four-star pre-requisite topics can be ignored without affecting CAP.
Meaning of some shortened headings:
What : the meaning of the concept in concern
Why : the motivation behind the concept in concern
How : the usage of the concept in concern
When : the pros and cons of the concept in concern, when to use the concept
extra : tangential info, can be ignored if not interested
: direct link to the LO. Ctrl+Click
to open the LO in new window/tab.
: learning outcomes
: prerequisite learning outcome
: examples
: resources
: exercises
: printable version
: preview/more info
: video
: 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.
Use Chrome to load the page you want to save as pdf.
Click on the Print
option in Chrome’s menu.
Set the destination to Save as PDF
, then click Save
to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.
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
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 7.30-9.30pm
SR2 (COM1-02-04)
Lectures will not be webcast as the venue does not have a webcast facility. Please bring your laptop to the lecture as you will need to be using it for the most part of the lecture.
Lecture slides are not suitable to be used as reference materials as they have been
If slides are not in LumiNUS by the expected times, please feel free to ping the lecturer.
Tuesdays 6.30-7.30pm
SR2 (COM1-02-04)
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.
Relevant: [
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 in your computer.
In some weeks, there will be some programming exercises for you to submit (on Repl.it
). 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 exercise.
Deadline:
Soft deadline: Monday Tuesday of week 13
Hard deadline: Sunday of week 13
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 needs to be in-person (reason: it is hard to give written feedback on diagrams) and can be high-level feedback only (reason: the report is graded).
Submissions later than the hard deadline are liable to a late submission penalty, to be fair to those who submitted on time.
Deliverables:
{YourName}.jar
e.g., JunHao.jar
JunHao.docx
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.
repl.it
We'll be using Repl.it
for coding exercises (compulsory).
repl.it
user profile (so that the prof can trace your repl.it
submissions to you).repl.it
classroom tic2002-2019
using the link https://repl.it/classroom/invite/ciQ3DQs.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
60% : Final Exam
If you face difficulties/doubts while learning the weekly topics, doing weekly exercises/tasks
damith
[at]comp.nus.edu.sg
There is no midterm.
The final exam has two parts:
Both papers will be given to you at the start but you need to answer Part 1 first (i.e. MCQ paper). It will be collected 1 hour after the exam start time (even if arrived late for the exam). You are free to start part 2 early if you finish Part 1 early.
Given the fast pace required by the MCQ paper, invigilators will not answer queries about the questions in the exam paper part I (but will answer queries related to exam administration).
If you have a doubt/query about a question ,or would like to make an assumption about a question, or would like to report a potential error in the exam paper, write down your doubt/query/assumption in the question paper itself. Those doubts/queries/assumptions (if justified) will be taken into account when grading.
Queries about questions are allowed during the part II.
Each MCQ question gives you a statement to evaluate.
An example statement
Testing is a Q&A activity
Unless stated otherwise, the meaning of answer options are
A: Agree. If the question has multiple statements, agree with all of them.
B: Disagree. If the question has multiple statements, disagree with at least one of them
C, D, E: Not used
Number of questions: 50
Note that you have slightly more than ½ minute for each question, which means you need to go through the questions fairly quickly.
Questions in Part 1 are confidential. You are not allowed to reveal Part 1 content to anyone after the exam. All pages of the exam paper are to be returned at the end of the exam.
You will be given OCR forms (i.e., bubble sheets) to indicate your answers for Part 1. As each OCR form can accommodate only 50 answers, you will be given 2 OCR forms. Indicate your student number in both OCR forms.
To save space, we use the following notation in MCQ question. [x | y | z] means ‘x and z, but not y’
SE is [boring | useful | fun] means SE is not boring AND SE is useful AND SE is fun.
Consider the following statement:
The correct response for it is Disagree
because IDEs can help with all three of the given options, not just writing and testing.
Some questions will use highlighting to draw your attention to a specific part of the question. That is because those parts are highly relevant to the answer and we don’t want you to miss the relevance of that part.
Consider the statement below:
Technique ABC can be used to generate more test cases.
The word can is highlighted because the decision you need to make is whether the ABC can or cannot be used to generate more test cases; the decision is not whether ABC can be used to generate more or better test cases.
Markers such as the one given below appears at left margin of the paper to indicate where the question corresponds to a new column in the OCR form. E.g. questions 11, 21, 31, etc. (a column has 10 questions). Such markers can help you to detect if you missed a question in the previous 10 questions. You can safely ignore those markers if you are not interested in making use of that additional hint.
Some questions have tags e.g., the question below has a tag JAVA
. These tags provide additional context about the question. In the example below, the tag indicates that the code given in the question is Java code.
The exam paper is open-book: you may bring any printed or written materials to the exam in hard copy format. However, given the fast pace required by Part 1, you will not have time left to refer notes during that part of the exam.
Mark the OCR form as you go, rather than planning to transfer your answers to the OCR form near the end. Reason: Given there are 50 questions, it will be hard to estimate how much time you need to mass-transfer all answers to OCR forms.
Write the answer in the exam paper as well when marking it in the OCR form. Reason: It will reduce the chance of missing a question. Furthermore, in case you missed a question, it will help you correct the OCR form quickly.
We have tried to avoid deliberately misleading/tricky questions. If a question seems to take a very long time to figure out, you are probably over-thinking it.
You will be given a practice exam paper to familiarize yourself with this slightly unusual exam format.
Yes, you may use pencils when answering part 2.