Using this WebsiteCourse Briefing Videos


Course Expectations

Here are some important things the course expects of you.

Prior Knowledge: Java and OOP

This course requires you to write Java code almost every week, starting from the very first week. If your Java skills are rusty, please brush up on them.

Use of AI

This course aims to get you started on AI-assisted SE in a way that does not compromise (and possibly enhances) your learning of basic SE skills.

A non-trivial amount of AI use is expected. Aim to use AI at least 20% of the time when doing course-related work, on average.

The level of AI use in coding tasks can vary as follows -- based on how much manual work happens and at which point.

  • No AI use. Hand-code everything. Use AI as a 'smart search engine' to ask general questions.
    Use this level when doing SE tasks that are very new to you.
  • Hand-code first, with AI's feedback: You hand-code the first version as if there is no AI. Ask AI to review. Refine based on AI's feedback.
    Operating at this level (on avearge) is enough to meet the minimum requirement of AI use the course expects.
  • Hand-code to start, get AI to finish: You hand-code a minimal version, just a proof-of-concept. Get AI to strengthen it to a full-fledged version e.g., handle edge cases, add tests.
  • 'Think' and compare: Think of how you would do the task manually. Get AI to do it. Compare the solution you 'imagined' with the one AI produced.
  • AI codes, you review: Get AI to do the task. Review it yourself fully, including the code, tests, behavior etc.
  • Full AI: Get AI to do the task, fully, including the review. Only review the outcome (e.g., the feature behavior).
    Use this level sparingly, if at all. As you will be graded for code quality, it is not prudent not to review the AI-generated code at all.

Which level to use? Depends on the task, how well can do the task manually, and your learning goals.

  • Hand-coding will teach you basic SE skills. Using AI more will save time and also teach you how to use AI for SE.
  • Recommended: First learn to do the task manually (i.e., Levels AI-1, AI-2).
    As you become more confident of your ability to do that task manually, move to higher levels of AI use (i.e., AI-3 and higher) to do the same task faster.
  • If you can't explain what AI did, your level of AI use is too high.

Which AI tool to use? You may use any available AI tools. The AI guidance we provide assumes you have access to at least one standard-tier AI tool, such as the following ones, which are freely available to all SoC students:

The AI@SoC page includes the following:

  • ChatGPT: First, sign up through https://nusitintranet.nus.edu.sg/gen-ai (accessible via NUS VPN if outside campus) -- This NUS-wide subscription does not come with Codex credits but SoC students will receive a monthly allocation of Codex credit through this account (paid by SoC).
    Non-SoC students taking this course should onboard onto the NUS-wide ChatGPT account first and then file a ticket at https://rt.comp.nus.edu.sg/ requesting Codex credit.
  • Gemini (and Antigravity).
    Non-SoC students taking this course needs an SoC account to access Gemini. They can create/re-enable their SoC account via https://mysoc.nus.edu.sg/~newacct
    If you encounter any issues, file a ticked via https://rt.comp.nus.edu.sg directly.

The AI tool use required for CS2103/T course tasks is expected to be well within the usage limits of a single standard-tier subscription (i.e., the S$30/month tiers of ChatGPT and Claude) and the limits of the free subscriptions provided by SoC.

FAQ Can I use code generated by AI tools in project submissions?


Workload

As 70% of this course is based on CA (see grade breakdown), it can appear to be heavy. However, it is not expected that you will spend more time on this course than its .

  • Note that the course contains more things than a typical student can do, so that even the strongest students have enough opportunities to learn as much as they wish to.
  • This means it is perfectly OK if you don't have time to learn everything the course offers. Control your workload based on the time you spend on the course in a week, e.g., 1-1.5 days per week.
  • We have provided a topic levels system (explained below) to guide you when prioritizing what to do.

Topic Levels

We use a topic levels system to indicate the progression of course components. Start with things that are rated level-1 and progress to topics at higher levels. Things rated level-4 are optional.

Levels for lesson topics (and textbook sections):

  • Level-1 topics are essential to keep up with the course. We recommend that you learn these topics if you want to pass the course (i.e., up to a C grade).
  • Level-2 topics can get you up to a B+.
  • Level-3 topics can get you up to an A.
  • Level-4 topics : OPTIONAL can push you beyond the limits of the course and help you reach a level above those who limit themselves to the course topics. They are not .
  • Topics marked with two icons e.g., : , : , : are relevant topics you are expected to have learned in prerequisite courses. They are given for reference, but are examinable. The number of indicates the progression of prerequisite topics, similar to the topic levels system above, i.e., level-1 prerequisite topics are the most basic and the most important. Level-4 prerequisite topics can be ignored without affecting GPA.

Topic levels for other things, e.g., admin info sections:

  • The course uses a similar topic levels system to indicate the importance of other info in this website. i.e., information rated as level-1 is the most essential. Info rated level-4 is optional and can be ignored without affecting your ability to follow the course.

Rewards for exceeding expectations

This course deliberately avoids giving extra credit for exceeding expectations, in order to keep the workload manageable (of course, doing more will have its own rewards in terms of learning).


Using this WebsiteCourse Briefing Videos