CS2103/T Aug '18
  • Flat (current format)
  •     Nested
  • Schedule
  • Textbook
  • Admin Info
  • Report Bugs
  • Slack
  • Forum
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • Team IDs
  • Java Coding Standard
  • samplerepo-things
  • Addressbook-level1
  • Addressbook-level2
  • Addressbook-level3
  • Addressbook-level4
  • Projects List
  • config.json templates for Reposense
  • Project Code Dashboard (BETA)
  • Week 1 [Aug 13]

    Todo

    • Submit the pre-module survey (Compulsory)

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


    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 pageAdmin 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. If your Java skills are shaky, do brush up your Java programming skills.

    In particular, you may want to have a look at the new Java 8 features such as streams, lambdas, Optionals, that may not have been covered in previous Java modules.

    CS2103 students: This module assumes a reasonable prior knowledge of Java and OOP because most students taking this module have taken two Java modules before. If you are totally new to Java, you may be better off switching to CS2113 (Software Engineering & Object-Oriented Programming) instead.

    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, but 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 E: Using GitHub [Creating 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.

    Admin Tools [Communication]

    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-cs2103-AY1819S1/forum.
    • Alternatively, you can post in our slack channel https://nus-cs2103-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, @u.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 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.

    Admin Forming Teams


    [Picture: The team that was at the top of early Google]

    When to form teams

    • CS2103T: Your team will be formed by CS2101 side in week 1.
    • CS2103: Your team will be formed in week 3 tutorial.

    Team size: The default team size is five.

    Team ID: This will be given to you after forming teams. It has the form TUTORIAL_ID-TEAM_NUMBER e.g, W14-2 means you are in tutorial W14 (i.e., Wed 1400-1500), team 2.

    Relevant: [Admin Tutorials → Tutorial IDs ]

     

    Our tutorials start on week 2 (even before CORS tutorial bidding is over), not in week 3 as other modules do. CS2103 (not CS2103T) students need to choose a temporary tutorial slot for week 2 tutorial. We'll inform you the procedure to do so in due course.

    Our tutorial IDs are different from CORS. Format: W09 means Wednesday 0900 and so on.

    Module Tutorial ID (ID in CORS) Time Venue Tutors (contact details)
    CS2103 W10 (T01) Wed 1000 COM1-B103 (ALL)* TBD
    CS2103T W12 (T01) Wed 1200 COM1-0210 (SR10) TBD
    CS2103 W13 (T02) Wed 1300 COM1-0210 (SR10) TBD
    CS2103T W14 (T02) Wed 1400 COM1-0210 (SR10) TBD
    CS2103T W16 (T03) Wed 1600 COM1-B103 (ALL) TBD
    CS2103T W17 (T04) Wed 1700 COM1-B103 (ALL) TBD
    CS2103T T09 (T06) Thu 0900 COM1-0210 (SR10) TBD
    CS2103 T10 (T04) Thu 1000 COM1-0210 (SR10) TBD
    CS2103T T12 (T07) Thu 1200 COM1-0210 (SR10) TBD
    CS2103 T13 (T06) Thu 1300 COM1-0210 (SR10) TBD
    CS2103T T16 (T08) Thu 1600 COM1-0210 (SR10) TBD
    CS2103T F10 (T10) Fri 1000 COM1-0210 (SR10) TBD
    CS2103 F11 (T09) Fri 1100 COM1-0210 (SR10) TBD

    *ALL: Active Learning Room

    Team composition

    We allow some freedom in choosing team members, subject to these constraints:

    • All team members should be in the same tutorial. Delay forming teams until your place in a tutorial is confirmed. We do not allow changing tutorials to team up with your preferred team mates.

    • Teams of single nationality are not allowed  Rationale: to train you to work in multicultural teams. However, we allow same nationality teams if the only language common among all team members is English. e.g. an all-Singaporean team that include both Chinese and Malay students.

    • No more than one exchange students per team Rationale: to increase interaction between exchange students and NUS students.

    • Gender balanced teams are encouraged. While all-male teams may be unavoidable at times (due to high male percentage in the cohort), all-female teams are highly discouraged.

    • Also note that we may modify teams when circumstances call for it. There is no avenue for you to object. Staying with your preferred team is not guaranteed.

    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. We assume you already know Java basics. We expect you to learn on your own any Java constructs not covered in your previous modules.

    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 textbook Software Engineering for Self-Directed Learners (CS2103 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.

    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 Tutorials [Exchange Students: Tutorial Registration]

    [Exchange students only] Registering 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.

    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?

    CS2103/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 CS2103/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.

    Link for the slides will be added here uploaded to IVLE after the lecture.