Where is everything?
The Schedule page is the one page you need to refer weekly. Although there is a lot of content in the Admin 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. In sum, the Schedule
page organizes the content chronologically while the other two pages has some of the same content but organized by topic.
What are the differences between CS2103 and CS2103T?
Same lectures, same exam. Separate tutorials, separate project grading. Unless specified otherwise, whatever is stated for one module applies to the other.
Why the workload is so high?
CS2103/T prepares you for many higher-level project modules (CS3216/7, CS3201/2, CS3281/2, CG3002, etc.), each requiring a slightly different skill set. It is also the only SE course 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 ⭐️⭐️⭐️⭐️ They are counted for CS2103R and for A+ grades only.
How do I get CS2103R credit for optional LOs?
General info on R modules are here.
To get CS2103R credit you should,
- Achieve most of the 3-⭐️ LOs and some of the 4-⭐️ LOs during the semester.
- Inform prof your interest to do CS2103 at the end of the semester.
- Achieve the missed 3-⭐️ and 4-⭐️ LOs during the vacation.
- Register for CS2103R in the subsequent semester.
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 class members (as part of weekly LOs), even if they are not in your team.
- achieve most of the 3-⭐️ LOs and some of the 4-⭐️ LOs.
Why so much bean counting?
Sometimes, small things matter in big ways. e.g., all other things being equal, a job may be offered to the candidate who has the neater looking CV although both have the same qualifications. This may be unfair, but that's how the world works.
Students forget this harsh reality when they are in the protected environment of the school and tend to get sloppy with their work habits. That is why we reward all positive behavior, even small ones (e.g., following precise submission instructions,
arriving on time etc.).
But unlike the real world, we are forgiving. That is why you can still earn full 10 marks of the participation marks even if you miss a few things here and there.
Related article: This Is The Personality Trait That Most Often Predicts Success (this is why we reward things like punctuality).
Why you force me to visit a separate website instead of using IVLE?
We have a separate website because some of the module information does not fit into the structure imposed by IVLE.
On a related note, keep in mind that 'hunting and gathering' of relevant information is one of the skills you need to survive 'in the wild'. Do not always expect all relevant materials to appear 'magically' in some kind of 'work bin'.
Why slides are not detailed?
Slides are not meant to be documents to print and study for exams. Their purpose is to support the lecture delivery and keep you engaged during the lecture. That's why our slides are less detailed and more visual.
Why so much self-study?
Self-study is a critical survival skill in SE industry. Lectures will show you the way, but absorbing content is to be done at your own pace, by yourself. In this module, we still tell you what content to study and also pass most of the content
to you. After you graduate, you have to decide what to study and find your own content too.
What if I don't carry around a laptop?
If you do not have a laptop or prefer not to bring the laptop, it is up to you to show your work to the tutor in some way (e.g. by connecting to your home PC remotely), without requiring extra time/effort from the tutor or team members.
Reason: As you enjoy the benefits of not bring the laptop; you (not others) should bear the cost too.
Why very narrow project scope?
Defining your own unique project is more fun.
But, wider scope → more diverse projects → harder for us to go deep into your project. The collective know-how we (i.e., students and the teaching team) have built up about SE issues related to the project become shallow and stretched too thinly.
It also affects fairness of grading.
That is why a strictly-defined project is more suitable for a first course in SE that focuses on nuts-and-bolts of SE. After learning those fundamentals, in higher level project modules you can focus more on the creative side of software projects
without being dragged down by nuts-and-bolts SE issues (because you already know how to deal with them). However, we would like to allow some room for creativity too. That is why we let you build products that are slight variations of a given
Also note: The freedom to do 'anything' is not a necessary condition for creativity. Do not mistake being different for being creative. In fact, the more constrained you are, the more you need creativity to stand out.
Why project requirements are so vague?
"You tell me exactly what to do - I do that - you pay me (in grades)" is a model for contract work, not for learning. Being able to survive in imprecise, uncertain, volatile problem contexts is precisely what we are trying to teach you.
For example, the best way to communicate something often depends on what is being communicated. That is why we don't specify the precise content for project documents. Instead, we aim to refine project documents iteratively. We believe the learning
experience will be richer if we let you decide the best way to present your project information rather than just following our instructions blindly. For example, in real-life projects you are rarely told which diagrams to draw; that is a decision
you have to make yourself.
Why so many submissions?
The high number of submissions is not meant to increase workload but to spread it across the semester. Learning theory and applying them should be done in parallel to maximize the learning effect. That can happen only if we spread theory and 'application
of theory' (i.e., project work) evenly across the semester.
Why aren't we allowed to build a new product from scratch?
There are many reasons. One of them is that most of you will be working with existing software in your first few years of the career while hardly any school projects train you to work with existing code bases. We decided to bite the bullet and
use CS2103/T to train you to work in existing code bases.
Why submission requirements differ between CS2103T and CS2101?
They do, and they should.
CS2103T communication requirements are limited to a very narrow scope (i.e., communicate about the product to users and developers). CS2101 aims to teach you technical communication in a much wider context. While you may be able to reuse some
of the stuff across the two modules, submissions are not intended to be exactly the same.