This site is from a past semester! The current version will be here when the new semester starts.

TIC2002 Introduction to Software Engineering


Module overview

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.


Using this module website

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.

Browser compatibility

Most of this will work on most mainstream Browsers, but embedded slides are best viewed using Chrome.

Information layers

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.

Some less important info in a boarder-less panel


Some less important info in a panel


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 Example
Additional information

This website uses a star rating system to indicate the priority level of contents.

Conventions used

Shorthand headings

Meaning of some shortened headings:

  • What : the meaning of the concept in concern ( example)
  • Why : the motivation behind the concept in concern ( example)
  • How : the usage of the concept in concern ( example)
  • When : the pros and cons of the concept in concern, when to use the concept ( example)

Meaning of icons

: 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

Searching for keywords

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.

Saving as PDF files

Follow this guide @SE-EDU/guides.

Printing Textbook Content

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.

Making this Website Better

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.


Instructors

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

Tutors:

  • Chan Weizhong:   chan.weizhong[at]u.nus.edu

Lectures + Tutorials

Wednesdays 6.30-9.30pm
Online + (optional: COM1-02-06)

A TIC2002 lecture + tutorial time is divided into three parts, as follows:

  • [6.30-7.00pm] Pre-lecture consultations:
    • You can use this time to get prof's help if you encountered problems while doing the previous week's tasks.
    • This session will be online. Communications with the prof is to be done using Microsoft Teams app.
      • If the question is is potentially relevant to others in the class, post your question in the chat room of the TIC2002-2022 (link) MS Team.
      • Otherwise search for prof's name (Damith Chatura RAJAPAKSE) in MS Teams and send a private chat message.
  • [7.00-8.00pm] Lecture briefing:
    • Will be done via Zoom.
    • You are encouraged to attend the Zoom session as there could be in-lecture activities. But a recording will be made available in case you can't attend the live Zoom session.
  • [8.00-9.30pm] Post-lecture consultations:
    • This portion will start as soon as the previous portion (i.e., the lecture briefing on Zoom) ends.
    • During this time,
      • go through the week's lecture topics in the module website
      • do suggested activities/exercises in there (if any)
      • if you encounter any problems while doing the above or have a question, contact the prof using MS-Teams, similar to the pre-lecture consultations explained above.
        If you prefer face-to-face interactions during this portion, I can come to meet you f2f in LT19 (it's just a short walk from my office where I'll be doing the Zoom lecture).

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.


Textbook

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.


Programming language

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.


Programming exercises

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.


Project

  • The project is to be done individually.
  • The project based on a generic project called Duke.
  • In the project, you will build a small chatbot, using Java.
  • The project is to be done in small increments. You will be given a schedule of what increments to be done in each week.
  • Some weekly increments will be common to all students, while some will vary from student to student. That means your final product will be unique in terms of total features, but some features will be common to other students in the class.

Weekly project increments are given in the panels below:

Week 3


Week 4


Week 5


Week 6


Week 7


Week 8


Week 9


Week 10


Week 11


Week 12


Week 13


Week 13: Final submission

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.

  1. Source code of the working program: push to your GitHub repo
  2. Product: Create a JAR file for the final version of the code and submit to LumiNUS, name: {YourName}.jar e.g., JunHao.jar
  3. Documentation: a single .docx (preferred) or a pdf file that follows the template file given (available in LumiNUS/Files/Handouts).
    Submission: Upload to LumiNUS. The file name should be your name e.g., JunHao.docx
  4. Demo video:
    • Record a demo video showcasing the features of your product.
    • Use the exact version of the code you submitted (i.e., the demo should match the submitted code exactly).
    • Recommended length 7 minutes, max length 10 minutes.
    • Audio narration is optional if the demo can be understood without the audio.
    • Ensure the video is in a format that can be played by any computer.
    • Submission: Name the file with your name (to match the jar and the report file) and upload to LumiNUS.

Policies

Deadlines

  • Deadline for weekly tasks:
    • If a specific deadline is given, adhere to that.
    • If no specific deadline is given, try to complete tasks allocated to a week by Tuesday 6.30pm of the following week (i.e., before the next lecture). In case you fail to meet that deadline, you should still do those tasks as soon as possible. There will be no penalty if a task is done within a grace period of one week after the deadline.

Plagiarism

  • You are allowed (and even encouraged) to discuss module tasks with others and help (and learn-from) each other. However, the submitted work should be your own.

Tools

Zoom

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.

Microsoft Teams (MST)

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).

Git, SourceTree

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.

GitHub

We'll be using GitHub for code hosting (compulsory).

Create a free GitHub account if you don't have one already.

Coursemology

We'll be using Coursemology for coding exercises (compulsory).

  • You'll receive the invitation link near to the first lecture.
  • More info about assignment submission will be given in the first week's lecture.

Intellij IDEA

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).


Assessment

[40%] CA

  • 10%: Participation -- Each week has activities that can earn you participation points.
    For you to be considered as participated in a particular week, you need to earn at least half of available participation points in that week (e.g., if the eligible activities in a week offer a total of 5 points, you should earn at least 3 points).
    To earn full 10% marks allocated for participation, you should have participated (based on the above criterion) in at least 10 (out of 13) weeks.
    You can track your participation points through the Participation Dashboard.
    Given below are the typical activities that can earn you participation points:
    • Weekly quizzes:
      • When awarding participation points for quizzes, we look for two conditions:
        • Condition 1: submitted early i.e., before the next lecture
        • Condition 2: answered correctly i.e., least 70% of the answers are correct (reason: to discourage random answers)
      • You earn:
        • 3 points if you satisfy both conditions.
        • 2 points if only one of the conditions is satisfied.
        • 1 point if submitted but both conditions are not satisfied.
    • Weekly programming exercises: You can earn 3 points if you complete at least 80% of the exercises allocated for that week.
    • Other admin activities: Other admin activities such as submitting a survey can earn you 2 points, unless the activity specify a different number of points.
  • [30%] Project
    • [20%] Features, code
    • [10%] Documentation

[60%] Final Exam


Getting help

If you face difficulties/doubts while learning the weekly topics, doing weekly exercises/tasks, you can


Exam

There is no midterm exam. Information about the final exam is given below.

  1. The final exam will be as per the normal exam schedule (you can check exam time from NUSMods), and will count for 60% of the final grade.
  2. The exam will be done face-to-face, but using Examplify. SCALE is not allowing remote exam this semester except in some special cases.
    Please use these resource if you haven't used Examplify in the recent past (the behavior may be different from the version you used last semester):
    • slides (refer to the slides on On-Campus exam)
    • video (refer to the Examplify Student Briefing video)
    • try a few practice exams provided in the above two
    • write to NUS CIT (citbox25@nus.edu.sg) if you run into any technical issues
  3. You will need to bring your own laptop, which can connect to the NUS wifi network.
  4. Recording of your PC screen is not required.
  5. 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.
  6. The Browser should only be used to accessthe module website (including relevant se-education.org pages e.g., Java coding standard). Accessing other websites is not allowed.
    In case the WiFi is disrupted during the exam, have a soft copy of the textbook, the coding standard, and any other relevant document on your computer too.
  7. Download the exam (both parts) before you come to the exam. We'll give you the password for opening the exam paper at the starting time of the exam.
  8. If you have a doubt/query about a question, or want to make an assumption about a question, please write it down in the 'feedback' 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.

Submitting feedback for a question:

  1. Click on TOOL KIT.
  2. Click on the NOTES tab, if it is not selected already.
  3. Type in your feedback in the text box.
  4. Tick the REQUEST FEEDBACK checkbox. If you don't, the feedback will not be saved!!!

  1. Bring your computer fully charged (and bring the charger too), although some charging points will be available at the exam venue.

Format

  • The exam will be divided into 2 parts.

Final exam - part 1

  • 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)
  • You are required to give a justification/rationale for your answer. The question will specify what should be included in the justification. Answers without the correct justification may not earn full marks. However, we'll give full marks up to two correct answers (per 16 questions) with missing/incorrect justifications (to cater for cases where you accidentally proceeded to the next question before adding the justification).
    Submitting the justification for a question is the same as submitting feedback for a question (explained above), repeated below for your reference:

  • Here is an example question. The answer is a and the justification can be OOP is only one of the choices for an SE project.

Choose the incorrect statement.

[Justification: Why is it incorrect?]

A. Software engineering projects always use OOP.
B. Some software engineering projects can be large and complex.
C. Some software engineering projects can go on for many years.
D. Software projects can involve people who are not software engineers.


  • Here is another example question. Note the [SELECT ALL] which tells you that this question can have multiple correoct answers and you need to select all of them i.e., it is a checkbox type question
    The answer is A, B, C (and the rationale is A and B).

[SELECT ALL] Which are UML diagrams covered in the module?.

[Justification: Which two are closely related to each other?]

A. Class diagrams.
B. Object diagrams.
C. Activity diagrams.
D. Gantt charts.


Final exam - part 2

  • Similar to part 1 (e.g., 16 questions, same length).

Exam briefing, mock exam, practice exam paper

  • There will be an exam briefing in the penultimate lecture. It will include a minimal mock exam, just to help you understand the structure.
  • You will be given a practice exam paper (at least half the size of the full paper) to help you practice timing. That practice paper will be released at least one week before the exam.