CS2113/T 2018
  • Flat (current format)
  •     Nested
  • Schedule
  • Textbook
  • Admin Info
  • Report Bugs
  • Slack
  • Forum
  • Instructors
  • IVLE Announcements
  • IVLE File Submissions
  • Tutorial Schedule
  • Team IDs
  • Java Coding Standard
  • samplerepo-things
  • Addressbook-level1
  • Addressbook-level2
  • Addressbook-level3
  • Addressbook-level4
  • Projects List
  • Week 1 [Aug 13]

    Todo

    Given below are some preparatory tasks you can do as you wait for the module to start:

    Getting ready for the module:

    Learn how to form project teams

    Delay forming teams until your place in a tutorial is confirmed.

    [Exchange students only] Know how to sign up for tutorials

    Exchange students need to use the ORATUT system to register for the tutorials. You must have received the instructions from UG office on how/when to go about the registration process. If not, please talk to UG office. When we can see your appeal on ORATUT, we can allocate you to the tutorial slot.

    Create a GitHub account

    Create a personal GitHub account if you don't have one yet.

    1. You are advised to choose a sensible GitHub username as you are likely to use it for years to come in professional contexts.

    2. Strongly recommended: Complete your GitHub profile. In particular,

      • Specify your full name.
      • Upload a suitable profile photo (i.e. a recent photo of your face).

      The GitHub profile is useful for the tutors and classmates to identify you. If you are reluctant to share your info in your long-term GitHub account, you can remove those details after the module is over or create a separate GitHub account just for the module.

    Submit the pre-module survey (Compulsory)

    Pre-Module Survey will be available on IVLE Week 1 Monday 0900 - Sunday 2355 ⏰. We need all of you to submit it because it tells us some important information about you, especially your GitHub username.

    Join the Slack channel

    Communication: Keeping a record of communications among your team can help you, and us, in many ways. We encourage you to do at least some of the project communication in written medium (e.g., GitHub Issue Tracker) to practice how to communicate technical things in written form.

    • Instead of the IVLE forum, we encourage you to post your questions/suggestions in this github/nus-cs2113-AY1819S1/forum.
    • Alternatively, you can post in our slack channel https://nuscs2113-ay1819s1.slack.com. We encourage you all to join the slack channel (you'll need to use an email address ending in @nus.edu.sg, @comp.nus.edu.sg, or @u.nus.edu to join this channel).
    • Note that slack is useful for quick chats while issue tracker is useful for longer-running conversations.
    • You are encouraged to use channels with a wider audience (common channel in slack, GitHub forum issue tracker) for module-related communication as much as possible, rather than private channels such as private slack/FB messages or direct emails. Rationale: more classmates can benefit from the discussions.
    Prepare to meet module expectations

    Prior Knowledge: Java and OOP

    This module requires you to write Java code almost every week, starting from the very first week. While we introduce some bit of Java programming in this module, it is by no means exhaustive. The module expects that you learn much of Java programming by yourself.

    In particular, you may want to have a look at the new features introduced in Java 8 such as streams, lambdas, Optionals. These are used in the codebase given to you.

    Workload

    Given 60% of this module is based on CA, it can appear to be heavy. However, it is not expected that you will spend more time on this module than its peer modules (e.g., if this module is core for you, it should not take more time than other level 2 core modules in your program).

    • Note that the module contains more things than a typical students can do, in order to provide enough things for even the strongest students to learn as much as they wish to.
    • This means it is perfectly OK if you don't have time to learn everything the module offers. Control your workload based on time you spend for the module in a week e.g., 1-1.5 days per week.
    • We have provided a star rating system to guide you when prioritizing which things to do.

    Star rating system

    Start with things that are rated one-star and progress to things with more stars. Things rated four stars are optional.

    Star ratings for Learning Outcomes (and textbook sections):

    • One-star LOs : The LOs you need to achieve just to keep up with the module. We recommend you to achieve these LOs if you want to pass the module (i.e. up to a C grade).

    • Two-stars LOs : Can get you up to a B+.

    • Three-stars LOs : Can get you up to an A.

    • Four-stars LOs : Can be useful for getting an A+, tutors positions, and getting into downstream SE modules that have competitive entry requirements (e.g., CS3281&2, CS3217, CS3216). Four-star LOs are not examinable. Omitting them will not affect your CAP (as A+ has the same CAP as an A grade)

    • LOs marked with two icons e.g., : , : , : , : are relevant LOs you are expected have achieved in prerequisite modules. They are given for reference and are examinable. The number of stars indicate the progression of topics, similar to the star rating system above i.e., one-star prerequisite LOs are the most basic and the most important. Four-star pre-requisite LOs can be ignored without affecting CAP.

    Star ratings for other things e.g., admin info sections:

    • The module uses a similar star rating system to indicate the importance of other info in this website. i.e., information rated as one-star are the most essential. Info rated four stars are non-essential and can be ignored without affecting your ability to follow the module.

    Given below are some module admin info to read around this time:

    Admin info to read:

    Admin Appendix C (FAQs) → Where is everything?

    Where is everything?

    The Schedule pageSchedule page presents all you need to know in chronological order while the other pages have some of the same content organized by topic.

    The Schedule pageSchedule page is the one page you need to refer weekly. Although there is a lot of content in the Admin Info page Admin Info page and the Textbook page -- which you are welcome to read in those respective pages -- the same content is also embedded in the relevant weeks of the Schedule page. Embedded extracts usually appear in expandable panels and can be identified by the symbol in the panel title.

    Admin Module Expectations

    Prior Knowledge: Java and OOP

    This module requires you to write Java code almost every week, starting from the very first week. While we introduce some bit of Java programming in this module, it is by no means exhaustive. The module expects that you learn much of Java programming by yourself.

    In particular, you may want to have a look at the new features introduced in Java 8 such as streams, lambdas, Optionals. These are used in the codebase given to you.

    Workload

    Given 60% of this module is based on CA, it can appear to be heavy. However, it is not expected that you will spend more time on this module than its peer modules (e.g., if this module is core for you, it should not take more time than other level 2 core modules in your program).

    • Note that the module contains more things than a typical students can do, in order to provide enough things for even the strongest students to learn as much as they wish to.
    • This means it is perfectly OK if you don't have time to learn everything the module offers. Control your workload based on time you spend for the module in a week e.g., 1-1.5 days per week.
    • We have provided a star rating system to guide you when prioritizing which things to do.

    Star rating system

    Start with things that are rated one-star and progress to things with more stars. Things rated four stars are optional.

    Star ratings for Learning Outcomes (and textbook sections):

    • One-star LOs : The LOs you need to achieve just to keep up with the module. We recommend you to achieve these LOs if you want to pass the module (i.e. up to a C grade).

    • Two-stars LOs : Can get you up to a B+.

    • Three-stars LOs : Can get you up to an A.

    • Four-stars LOs : Can be useful for getting an A+, tutors positions, and getting into downstream SE modules that have competitive entry requirements (e.g., CS3281&2, CS3217, CS3216). Four-star LOs are not examinable. Omitting them will not affect your CAP (as A+ has the same CAP as an A grade)

    • LOs marked with two icons e.g., : , : , : , : are relevant LOs you are expected have achieved in prerequisite modules. They are given for reference and are examinable. The number of stars indicate the progression of topics, similar to the star rating system above i.e., one-star prerequisite LOs are the most basic and the most important. Four-star pre-requisite LOs can be ignored without affecting CAP.

    Star ratings for other things e.g., admin info sections:

    • The module uses a similar star rating system to indicate the importance of other info in this website. i.e., information rated as one-star are the most essential. Info rated four stars are non-essential and can be ignored without affecting your ability to follow the module.

    Admin Programming Language

    The main language used in this module is Java. You should use Java for all programming activities, the project, and exam answers.

    The module doesn’t “teach” Java, but only introduces some topics essential to get you started. We expect you to learn on your own any Java constructs that are not covered in the lectures, but used in the provided codebase.

    Java coding standard

    This module follows the OSS-NUS Java coding standard.

    In the project you are required to follow basic and intermediate guidelines (those marked as ⭐️ and ⭐️⭐️). In other programming activities in the module, we recommend (but not require) you to follow the coding standard.

    Admin Textbooks

    This module is supported by a customized online text book **Software Engineering for Self-Directed Learners*, 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.

    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.

    Admin Appendix C (FAQs) → What are the differences between the T and the non-T version of the module?

    What are the differences between the T and the non-T version of the module?

    Same lectures, same exam. Separate tutorials, separate project grading. Unless specified otherwise, whatever is stated for one module applies to the other.

    Admin Appendix C (FAQs) → Why the workload is so high?

    Why the workload is so high?

    CS2113/T prepares you for many higher-level project modules (CS3216/7, CS3203, CS3281/2, etc.), each requiring a slightly different skill set. It is also the only SE module some of you do before going for industry internships. Therefore, we have to cover many essential SE concepts/skills and also provide enough exercises for you to practice those skills. This is also why we don't have time to go very deep into any of the topics.

    Remember, everything you learn here is going to be useful in a SE-related career.

    Also, consider this a gradual introduction to 'heavy' modules; most project modules you do after this are going to be much heavier 😛

    How to reduce the workload? You can omit Learning Outcomes rated . Furthermore, control the project workload by using no more than a fixed amount of time weekly on the project (e.g., 1 day).

    Admin Appendix C (FAQs) → What are the extra requirements to get an A+?

    What are the extra requirements to get an A+?

    In CS2113/T, A+ is not given simply based on the final score. To get an A+ you should,

    • score enough to get an A
    • be considered technically competent by peers and tutor (based on peer evaluations and tutor observations)
    • be considered helpful by peers (based on peer evaluations and tutor observations)
      • In particular, you are encouraged to be active on the slack channel and our forum and give your inputs to ongoing discussions so that other students can benefit from your relatively higher expertise that makes you deserve an A+.
      • Whenever you can, go out of your way to review PRs created by other team members.

    Tutorial 1

    Note: We use Tutorial 1 to mean the tutorial in week 1.
    No tutorial in week 1.

    Lecture 1

    This lecture is compulsory to attend.

    Slides:

    Uploaded on IVLE.