NUS Module Reviews - Y2S1

My Timetable AY2425 Sem 1.png

Major Modules

CG2028

Fun module, fun project, interesting but hard concept (could be taught better but I'm not too sure how either)

CG2027

Proof all formulas beforehand for better conceptual understanding.

Expected Grade: A
Actual Grade: A-

CS2113

I liked learning about the various diagrams and design patterns.

It's a software engineering course, so it is quite frustrating to work within the limitations of the software engineering workflow, and face the various limitations. It is also very unclear, the course content website is very messy and even buggy, which causes great confusion

Expected Grade: A-
Actual Grade: A

Technical Electives

CS3243

This was a wildcard module I took this semester. I went in predicting that this could be a time sink and I could do badly for it. I took this module as I wanted to learn more about the classical AI algorithms like A* search, Local Search, things that you usually won't get easy exposure to elsewhere, and I got exactly what I came for. However, I'm not sure if it is very applicable to me, but I can see how the concepts could be applied to optimization problems, or games, or robotics.

Content

Topics covered: Path Search (UCS, DFS, BFS), A* search and Heuristics, Local search, CSP, Adversial search (Minmax, Alpha Beta Pruning), Knowledge representation (model the rule of a game using logical statements), Bayesian network and Basic probability theory.

I liked that it focuses on the AI algorithms that I usually would not be exposed to. I liked that the course was well-structured and very transparent. I like that projects allowed us to apply our concepts, and understand the strengths and limitations of these algorithms effectively.

Although I liked the content, I lament that I might not be able to find a way to apply whatever I've learnt easily. Whatever I've learnt can probably only be applied in very specific scenarios, but I guess its par for the course. I would have liked if some more recent topics were covered, such as a bit of reinforcement learning (and a mini project on it).

Format
I do think the multiple submissions + bonus MCQ are indeed quite excessive but I think its still good to keep them. I liked that the MCQ questions, usually mandatory in other courses, are optional here so that there isn't as much stress to rush through it each week. I liked that the tutorials (but not the whole tutorials, only 1 or 2 questions) are mandatory, as they allow us to practice similar to the exams, and since only one question is graded, we don't have the stress of perfecting our answers/ always being forced to keep up

Prof Darren Ler also delivers content in a very well structured manner and easy to follow. It's honestly one of the better lectures I've attended in NUS. Clear, Concise, Straightforward. Easy to follow slides, can bring up insights.

Personally, I also feel that the Midterms and Finals can be doable, BUT you would need

  1. Ability to trace through graphs/ enumerate truth tables
  2. Decent ability in proofs (help me)
  3. Solid understanding of logic and CS1231 concepts.

If you did well for CS1231 I do not think you would struggle too much. I appreciated that the examination format was not a typical MCQ Examplify exam, and that the (practice and final) papers, while hard, felt fair. It was a refreshing change of pace from the "gotcha" style questions I've heard from other CS finals.

Projects
I spent a fair bit of time on the projects, trying to optimise it. Project 1 was decent, but it took a while to get the hang for it and optimise. Project 2 was a Constraint Search Problem (CSP) solver, which was doable, as well as Local Search (I had a rough time and I couldn't pass all test cases).
Project 3 was a fairy chess minmax algorithm with alpha-beta pruning, and it was actually relatively doable and easy (partly because you could and it was encouraged to ask ChatGPT for help).

The projects can easily be a time sink without strong coding experience. Optimising it might be a wild goose chase. That said, standard DSA techniques like using hashmaps, reducing loops, combining functions help, and weekly project consultations helped quite a fair bit. Bonus marks for the projects also do well to ensure we have a chance to make up for lost marks. Most people do well for the projects (full marks) so I think it is fine too.

I wish there was a way we could showcase our projects besides it being just in Python code, like maybe a simple web UI where students can see how their maze solver works.

Breakdown
Tutorial Attendance: 5% (5/5)
Tutorial Assignments: 5% (Best 5/9, got 5/5)
Projects: 30% (30/30)
Midterm: 20% (72/100)
Finals: 40% (?)

Expected Grade: A-
Actual Grade: A

CS2102

It is a very applicable course, you can see how the course content could be used in various places, be it application development, data analytics, security, and much much more. It also stretches my thinking, making me aware of SQL in ways I have never thought of before, and would be hard to do so outside. It is also relatively well structured.

Project
Project is relatively low workload, it mainly involves

  1. Setting up some database
  2. Drawing an ER Diagram (6%)
  3. Creating Triggers and Procedures (6%)
    My group split the workload up relatively easily. It was quite fast to finish it.

Expected Grade: A-
Actual Grade: A

Common Curriculum Modules

IE2141

I liked that we got to learn various concepts and learn about Stella architect so that we can effectively visualise how systems worked. However, i didn't really do well for the assessments in this module so welp.

The project was ok, we tried to fit a model into a problem (one which we could select from a range).

Expected Grade: B+
Actual Grade: A- (Pleasant Surprise)

NUSC Modules

NTW2031

I liked her approach to class discussion and content delivery. Class Discussion is done in a way where we can effectively participate and learn about the content, even though we might not understand the content fully.

The writing lessons are a bit dry and I'm not sure how much I got from it (I got something but I'm not sure how much I can apply them)

Expected Grade: B+ (I don't have high hopes)
Actual Grade: A+