TIC2002 (2019)
  • Full Timeline
  • Week 1 [Aug 12]
  • Week 2 [Aug 19]
  • Week 3 [Aug 26]
  • Week 4 [Sep 2]
  • Week 5 [Sep 9]
  • Week 6 [Sep 16]
  • Week 7 [Sep 30]
  • Week 8 [Oct 7]
  • Week 9 [Oct 14]
  • Week 10 [Oct 21]
  • Week 11 [Oct 28]
  • Week 12 [Nov 4]
  • Week 13 [Nov 11]
  • Textbook
  • Admin Info
  • Report Bugs
  • Forum
  • Announcements
  • File Submissions
  • repl.it link
  • Java Coding Standard
  • Duke repo
  • TIC2002 Admin Info


    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.


    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.

    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 tool tips (activated by hovering over it) and dashed underlines indicate modal windows (activated by clicking) containing additional information.

    Additional information
    Additional information

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

    Relevant: [Admin Module Expectations → Star Rating System ]

     

    Star Rating System

    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.

    Conventions Used

    Shorthand Headings

    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

    Boxed-Text Styles

    additional info warning positive message important message an error to avoid tip definition

    Meaning of Icons

    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
    >_ : 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

    1. Use Chrome to load the page you want to save as pdf.

    2. Click on the Print option in Chrome’s menu.

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

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


    Lectures

    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 optimized for lecture delivery instead. Use the textbook (not slides) as your main reference. Slides will be uploaded to LumiNUS after the lecture, usually by Wednesday.
    If slides are not in LumiNUS by the expected times, please feel free to ping the lecturer.


    Tutorials

    Tuesdays 6.30-7.30pm
    SR2 (COM1-02-04)


    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.

    Relevant: [Admin Using this Website → Saving as PDF files ]

     

    Saving as PDF Files

    1. Use Chrome to load the page you want to save as pdf.

    2. Click on the Print option in Chrome’s menu.

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


    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 in your computer.


    Programming Exercises

    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.


    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.

    Week 13: Final Submission

    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:

    1. Source code of the working program: push to your GitHub repo
    2. Product: Submit the JAR file, name: {YourName}.jar e.g., JunHao.jar
    3. Documentation: a single .docx (preferred) or a pdf file that follows the template give (template file available in LumiNUS).
      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 one week after the deadline.

    Tools

    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.

    repl.it

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

    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 -- To get full marks, complete weekly tasks for at least 10 weeks.
    • 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 post in the module forum
    • email prof at damith[at]comp.nus.edu.sg
    • ask for prof's help during next week’s tutorial hour

    Exam

    There is no midterm.

    The final exam has two parts:

    • Part 1: MCQ questions (1 hour, 30 marks)
    • Part 2: Essay questions (1 hour, 30 marks)

    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.

    Final Exam: Part 1 (MCQ)

    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:

    • IDEs can help with [writing | debugging | testing] code.

    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.

    Final Exam: Part 2 (Essay)

    Yes, you may use pencils when answering part 2.