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:
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.
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.
Create a personal GitHub account if you don't have one yet.
-
You are advised to choose a sensible GitHub username as you are likely to use it for years to come in professional contexts.
-
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.
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.
[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: [
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.
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.
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: [
[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.
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).
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.