Module Reviews: Y2S2

CS3243: Introduction to Artificial Intelligence

Lecturer: Prof. Daren Ler Shan Wen
TA: May Lim

Assessment:
10% Diagnostic Quizzes (best 8 out of 11)
10% Tutorial Assignments (9)
30% Projects (3)
20% Midterms
30% Finals

Module Difficulty
Truly the surface of the AI iceberg. We started with search problems, where you make use of the algorithms you probably already heard before in CS2040 and its variant like BFS, DFS, and UCS (Dijkstra). Some search problems require heuristic functions and that's where search algorithms like greedy best-first search and A* search comes in handy. Then, you are introduced to local search problems and CSP which turned the module difficulty up a notch. Up next, adversarial search where game theory comes in along with the MiniMax algorithm. After that, knowledge representation in AI where it becomes CS1231/S for a while. Finally, uncertainty where we had to deal with Bayesian networks.

The concepts taught in the prerequisite modules is actually widely applied here and might help you on completing the module as well. As a module, I'd say the module is borderline difficult because there are so many terms that I have never heard about before.

The workload below is measured weekly.
Lectures - 2h
The lectures are okay to me. I found the pace not too fast and not too slow. Glad the lectures were recorded because most of the QnA sessions were held after the 2h period so I will definitely miss it to go for the next lecture. I really like how Prof. Daren and teaching team were pretty fast at responding to our questions in-lecture or in the LumiNUS forum. I found those questions and answers to be very supplementary and helped me a lot to grasp things that weren't covered during the lecture.

Tutorials - 1h
Every tutorial, there are one or two questions that you have to submit. Since it has to be type-written, I suggest using LaTeX to do it. Usually they are the easiest question or the most straightforward from the whole worksheet, so you should be able to do it in a week. (Just to note, this is the only face-to-face class that I had during the semester)

The TAs will go through the whole tutorial worksheet and recaps the lecture material on the previous week, and for myself, TA May did it well. I can also see her effort on delivering clarifications and important informations through the group chat, which is something I really appreciate.

Diagnostic Quizzes
Diagnostic quizzes are one of the major reasons why this module is difficult. During the first few weeks, we had to struggle with the ambiguity of the questions, but thankfully many clarifications were given and it became less ambiguous as the semester comes to its second half. Some of the questions are easy to find on your lecture slides, but most of them are actually tricky if you don't pay attention to the wordings very carefully. Too bad I fell on this trap for quite numerous times.

Projects
Projects are the sole reason why this module might take so much of your time. This semester, all the projects are about chess. The semesters before, it was a mix of different topics, including chess. I can't really tell whether all-chess is better or worse because it's really subjective. They are all on Python, so if you are already familiar with that language, then +1 advantage.

First project is an application of search problems using the chess pieces and the chess board. The only issue here is to parse the inputs given as they are in a certain format, hence taking a while to actually do it right. Other than that, algorithm is pretty much plug-and-chug.

Second project is using local search and CSP. However, parsing the input is no longer the main issue, but to actually do it optimally and correctly. You will take a very long time on optimizing your code (make it run faster before it reaches the goal) and to actually reach the goal state. There is some sort of luck involved as well (RNG go brr), so this might be where people start to say words on the project :D

Third and last project is to actually win on the chess game, just a smaller chess board, using MiniMax algorithm. Although the grading is more relaxed, you still need some time to actually construct the algorithm that makes you win enough and is fast eough.

Exams and Personal Opinion
If you can finish all questions on time, you must have got some divine force within. Yes, midterms and exams is not about doing all questions, but to attempt as many questions as you can XD. I have to say they are indeed difficult I had to say that, but not that it's out of the module scope, it's just hard and tedious to type all of it in a few minutes. I myself barely finished half of the paper for both midterms and finals. For example, typing a 3-CNF with more than 10 clauses in 3-5 minutes, that's very fingerbreaking D:

Personally, despite the difficulty and the high workload, I enjoy this module and exploring things during the projects as well. I only used to hear about all these AI-related terms but never really know what they actually are. With this module, I got to explore more about them, theoretically and practically. Props to the teaching team for actually clarifying all our doubts in a short amount of time :)

Expected grade: A-

DSA2102: Essential Data Analytics Tools: Numerical Computation

Lecturer: Prof. Lam Xin Yee
TA: also her

Assessment:
5% In-lecture quizzes
3% Tutorial presentation
12% Homeworks (3)
25% Midterms
55% Finals

Module Difficulty
The module explores the many ways of optimizing numerical computations of well-known topics, such as floating point operations, matrix multiplication, bisection and fixed-point method, Gaussian elimination, PALU and Cholesky factorization, Jacobian + Gauss-Seidel + SOR iterative methods, polynomial interpolation, QR factorization, Taylor expansion for derivatives, Richardson interpolation, and finally integration using different approximation rules (trapezoid, Simpson, midpoint, Romberg).

The pace of the materials is pretty nice, we learn one thing at a time, and the motivation of studying the particular contents was shown clearly. This is why I can retain myself inside this world :)

The workload below is measured weekly.
Lectures - 4h (2 x 2h)
The lecture is pretty easy to understand by looking at or listening to the materials. I definitely have no complaints about Prof Xin Yee on her lectures. To add up, for every lecture there will be an in-lecture quiz which consists of 1-3 easy questions, no clowny tricks at all. Even if you missed half of the lecture, you would still be able to get all of them right.

Tutorials - 1h
Tutorial presentation is basically you come one time, present a question of choice (book in prior), and end of story. You can present more than one question if you want to, but one is sufficient. Other than that, I think the question difficulties are well-distributed from easy to hard. It's definitely a good practice as some past year exam questions were slipped inside, too.

Exams and Personal Opinion
Before I talk about that, let me briefly mention about homeworks which take around 2-3 weeks to do each. The questions, although some are difficult, are still straightforward, so I guess everything is fine.

Midterms and finals were both not bad at all. Thanks to the past year exams, I managed to have a good grasp on what's coming out and how the questions will look like. Prof is also very lenient at her markings so don't worry to much about it.

Overall, this module reminds me of the reason why I chose DSA as my major (because they still have the fun maths here on top of all the CS-related shenanigans lol?). Jokes aside, it's light workload enables you to enjoy the module as it progresses week by week.

Expected grade: A

GET1030: Computers and the Humanities

Lecturer: Prof. Miguel Escobar Varela
TA: also him

Assessment:
5% Lecture Quiz
15% E-tutorial Participation
30% Online Quiz (2)
20% Individual Assessment
25% Group Project

Module Difficulty
The module teaches us how humanities can co-exist with data, improving many aspects of each other's using various data visualization tools, such as Python's Matplotlib and Seaborn, text analytics with Voyant, network analysis with Gephi to visualize graphs, and geospatial data with Python's Folium and Google Maps.

The workload below is measured weekly.
Lectures - OTOT
You read that right. You can watch the lecture videos anytime or not watch it at all. However, it still takes even less than an hour to watch the whole videos for the week, so lecture workload is very light in my opinion.

Every week, you have to complete a lecture quiz that tests on the current lecture's material. It's very simple, yet you are graded based on completion, not the correctness. In other word, the 5% is just participation marks by doing the quizzes.

Tutorials - 2h
Some of the lecture quizzes are open-ended questions where Prof might use it as a discussion topic during the tutorial session. It was online but is a very interactive tutorial. There were also some in-tutorial activities where you have to do it either individually or in pairs. It's a very simple and easy activity as you already had an example provided for you. Your participation here is graded in case you didn't read the grading weightage.

The two online quizzes were held during the tutorial sessions as well. There were only 5 questions each, and it's really straightforward if you read the lecture materials well, so nothing too much to worry about, compared to quizzes on CS modules.

Assignments
The individual assignment was basically to discuss about a data visualization of any topic (not necessarily humanities) and explain what are the informations that can be entailed in that visualization and what information it cannot provide. What I like about this assignment is how Prof. Miguel gave me a really complete, exhaustive, thoughtful, and constructive feedback on my essay and not just giving me the grade and a simple comment.

The group project was similar to the individual assignment. The differences include the topic, which is restricted to only humanities; the background of the project, which needs to be clearly stated among with the relevant academic references; the data visualization, which is more likely to be more complex, hence more to explain. In the end, each groups gave feedback to other groups about the video presentation about their whole project.

My suggestion for the group project is to do it with someone you already know. Thankfully, the group can be pre-made so it's best to already know somebody taking this module with you before it starts.

Exams and Personal Opinion
No final exam XD

However, I personally enjoyed this module as well because aside from learning and reviewing my data visualization skills from DSA2101 (which I took the semester before), I began to appreciate the need of humanities and culture alongside with big data analytics and how combining both worlds can improve human lives. As the other reviews out there have said, this module is pretty chill in terms of workload and is a good GET module for those who have been venturing on data analytics or programming in general.

Expected grade: A- (since it's easy so everyone can do well)

MA2104: Multivariable Calculus

Lecturer: Prof. Zhang Tengren
TA: also him

Assessment:
15% Assignments (3)
25% Midterms
60% Finals

Module Difficulty
The module starts with a refreshment to the calculus world, vectors. Once you go deeper, you'll be introduced to more topics that might be well-heard, such as partial derivatives, double and triple integrals (Fubini's), spherical coordinates, Jacobian, surfaces, vector field, conservative vector field, grad-div-curl and finally Green's and Stoke's theorem.

The workload below is measured weekly.
Lectures - 4h (2 x 2h)
When it's under Prof Tengren, everything seems to be fine. I am always amazed by the drawings made for the lecture notes, whether pre-made or made on the spot. It clearly helps me as a visual learner to grasp the ideas on solving the related problems. He even explained how to solve the type of questions that might come out during the exam, systematically. Also, the lecture is recorded in case you missed some of the important stuff as the pace of the module is borderline quick but catchable.

Tutorials - 1h
Every week, there will be a tutorial worksheet given. It's not part of any grading at all, but I really encourage everyone taking the module to try it out and ask it during the tutorial session. The question difficulty varies from easy plug-and-chug questions to some tricky questions, so it's a good practice.

Exams and Personal Opinion
Midterms was pretty straightforward, hence the steep bellcurve because everyone is basically crushing it. Finals was surprisingly trickier than I thought, and I only realized that when I decided to redo it during my free time few days after finals ended :'D (yes deep realization of messing up big time)

I forgot to mention about homeworks, which is also about the same difficulty as tutorial questions, but I feel that this is a game changer since the grade competition is tight, hence the homework may be a significant factor. They are released evenly throughout the semester so I think everyone should have enough time to do it.

Overall, this module is a solid good one for all the calculus enthusiasts and all the ones obligated to take the module. I was just scared of the bellcurve D:

Expected grade: A-

ST3131: Regression Analysis

Lecturer: Prof. Chen Zehua
TA: Lu Yukun

Assessment:
20% Tutorial attendance and submission
30% Midterms
50% Finals

Module Difficulty
When I took ST2132, it covers the whole ST2131 for the first 6 weeks.
When I took ST3131, it covers the whole ST2132 only during Week 1.

Puns aside, this module covers what it is supposed to cover. Starting from simple linear regression, multiple linear regression, dealing with factor variables via ANOVA, pairwise comparisons and the criterions to use (Scheffe, Tukey, Bonferroni), ANOCOV, variable selection (AIC, BIC, CV, forward and backward steps), model diagnostics, multicollinearity and finally variable transformation (VIF, Box-Cox).

One thing I found peculiar is that we only covered 3 chapters right before midterm which is up to ANOVA, and then Prof just sped all the way to finish the last 7 chapters, one per week.

The workload below is measured weekly.
Lectures - 4h (2 x 2h)
Are recorded. His accent is actually hard to understand but I can still grasp a thing or two from the lecture annotations. Thankfully, his lecture slides are enough to cover everything you need to know for the exams.

Content-wise, the majority of the chapters, as the other reviews have said, is leaning towards a theoretical one. There is still some R code, but not that significant since it's not allowed during exams.

Tutorials - 1h
Attendance is part of the grading, so I tried to attend all of them anyways. However, the solution will be given at the end of the day and not joining the sessions is not a loss of content.

You are to submit your solution to some or all the questions every even-numbered tutorials. The questions are pretty much doable but might take up some time to actually write them clearly to avoid any confusions. Most of the questions are either plug from some reference questions or find the correct R code, so this is where the use of R code comes in.

I have nothing much to say about the TA because I had no complaint about it, people's opinion may vary or maybe it's me who reviewed all the tutorial questions during the reading week :))

Exams and Personal Opinion
Midterms was very doable (and thus the very right-skewed result distribution) but finals was much harder, but I think is not that frustratingly hard since I managed to do more than half of the paper. Glad that Prof made the specific of things that will come out during the finals but again it is still hard due to the plethora of questions in a limited amount of time.

If I had got a better timing or another Prof assigned for this module, I would consider it due to the underwhelming lectures.

Expected grade: A-