Mod Review
My mod review for NUS, mainly Computer Science and Business Administration, and some GE modules though.
Table of Content
- Table of Content
- Computer Science
- CS1101S Programming Methodology I
- MA2001 Linear Algebra I
- CS1231S Discrete Structures
- CS2030S Programming Methodology II
- CS2040S Data Structures and Algorithms
- MA1521 Calculus for Computing
- CS2100 Computer Organization
- CP2106 Independent Software Development Project
- CS2103T Software Engineering
- CS2101 Effective Communication for Computing Professionals
- CS2109S Introduction to AI and Machine Learning
- CS3217 Software Engineering on Modern Application Platforms
- CS2105 Introduction to Computer Networks
- ST2334 Probability and Statistics
- Business Administration
- Other
Computer Science
CS1101S Programming Methodology I
Regardless of who you are talking to, if he/she is from CS, you probably would’ve heard about this module from them. This is the rite of passage for all CS students, and I think I could not have asked for a better first mod to take to expose myself to the field of CS. It is so well designed that it is not too overwhelming to even the most beginner of beginners, yet challenging enough to push the more experienced coders.
In week 1, you learn about variables and functions. You know, the easy stuff.
In week 2, you are hit with recursion, and it is downhill from there.
For the whole module, you are required to code in Source Academy, which I think has made the experience very enjoyable throughout (on highsight…of course. I could not speak for myself while I was doing the module in the midst of all the hall commitments that I have). However, be prepared for it to take up the bulk of your time, especially if you are new to coding. I took 6 modules that semester, but this mod manages to take up like 60% of the time I spend on work.
Since we are forced to use the custom IDE and programming language, it does not feel AS overwhelming, because you know that you can (and you should) solve the problem with whatever functionalities that are available to you. This is unlike the other CS modules where the more experienced coders would use some libraries or APIs to solve the python problem in one line while newbies are left to suffer through the whole process.
I also like the fact that it manages to introduce many real life CS concepts that are nicely integrated into the missions, such as:
- Robotics
- Graphics generation
- Audio processing
- Image processing
- Video processing
- Many more
One of the highlight is the sumo bot competition, which I joined together with my tutorial (they call it studio?) mates. Even though we enter the competition without much experience and expectations, we still manage to have a lot of fun building our own robot and creating our own program (well it was hardcoded, but it works…. 20% of the time). It was overall a very fun experience and I highly recommend you to join it, not for marks or something (because honestly you don’t get much), but to experience it and expose yourself to the idea of BUILDING. Being a newbie, that experience plays a large part in making me more comfortable and confident in BUILDING later down the line.
One last thing, I would highly recommend you to do the optional quests. When you are stuck, have someone to discuss with, struggle with. This mod builds a strong foundation for future mods down the line, and do not go in with the mentality of wanting to SU it.
MA2001 Linear Algebra I
A lot of lectures that are very theoretical, and a lot of proving. Personally I find it difficult to disgest many of the abstract concepts. I think 3Blue1Brown has helped me a lot in visualzing many of the abstract concepts. I also found that doing examples from one of the Linear Algebra textbooks is more helpful than trying to understand the slides. This works for me but might not work for others but I think that the textbook did a better job introducing concepts sequentially and simplifying it in a way that I understand.
CS1231S Discrete Structures
A lot of people hate this mod with a burning passion, and a lot of people came in with the intention of SU it, understandbly so since discrete math nutoriously known to be difficult. But I think that this is one of the most fun mods out there, exams aside of course. I took Knowledge and Inquiry in JC, which for those that do not know, is like Philosophy (or more specifically, epistemology), where we deal with the nature of knowledge. We are required to evaluate to evaluate the line of reasoning of arguments, not the content of their arguments. To some extent, I have had the opportunity to deconstruct arguments made (eg. to evaluate an author’s argument for validity by formalizing it: if p then q, the author argues p, therefore q follows). However, taking this mod has introduced me to the realm of the formalization of logic.
Instead of using words to evaluate logic, now I am required to use symbols to evaluate logic.
I find the proving in this mod easier than that of MA2001, but that’s just me. Though many people are not able to see the real life application of the knowledge that they learn here, I think that taking this mod has definitely helped developed my analytic reasoning ability, which you cannot really quantify. Even if you are not convinced of the usefulness of this module, I urge you to give this mod a chance, not from an academic standpoint, but from an interest standpoint. The idea of vacuously true, and different levels of infinity has blown my mind so much. I remember watching the Infinite Hotel video by Ted Ed when I was young and it made 0 sense to me. Now it still made 0 sense, but at least it is a smaller 0 than before. After learning about some of the concepts taught, I remember sending some of the slides to my JC classmates, who took knowledge and inquiry with me, and we just started talking about it. Again, not from ab academic standpoint, but from a point of interest. None of us know what we are talking (for the most part), but we gained a lot of insights from it nonetheless. Please do not let the bell curve and exams hinder you from enjoying this mod, and you do not need to be good at it to enhoy it. I can assure you that this is one of the mods that you will remember years down the line.
CS2030S Programming Methodology II
Introduction to java and object oriented programming. Honestly like the rest of the people, there are a lot of things that do not make sense initially - Why are we forced to use vim?
Now that I am a bit more experienced, I am convinced that being forced to use vim has exposed me to the realm of vim. And currently, I unironically use Vim. Not the vim Vim but vim plugins for my VSCode and Intellij, as I find the vim key bindings to be a huge productivity boost to my workflow. Well I hoped that I started loving vim sooner, because I did not do as well for this mod as I wanted, one reason being my inability to navigate efficiently with vim.
In terms of the actual content, there is not much to say about it to be honest, other than it is a good introduction to java and object oriented programming. Make sure your code compiles for practical exam though.
CS2040S Data Structures and Algorithms
Probably one of the most important mods, pracmatically. Let’s face it, you probably know the importance of leetcode and stuff. This mod is very well designed. Even if you are a God at leetcode, the science behind the data structurse and algorithms cannot be neglected. Also, the problems are way harder than leetcode hard, and I would say there’s more application.
MA1521 Calculus for Computing
Not much comments. It’s another math mod.
CS2100 Computer Organization
Probably your first deep dives into the low level stuff, going into 1s and 0s territory. This is one of the mods people question their usefulness to real life, especially since their interests are not low level programming. However, I think that even if you are set to go into frontend development, or any subfields that do not deal with 1s and 0s, you should still take this mod seriously. Again, not from an acadamic standpoint, but from a point of interest. Growing up, I have heard the phrases CPU, RAM etc. thrown around but to me, they are just magic words. I did not really know the difference between an 8GB RAM and a 16GB RAM, except Fallout 4 requires at least 8GB of RAM. What are bytes anyways?
After taking this mod, I can say that I at least are more confident in knowing how a computer actually works. In case someone asks me, I can still string out an answer, else it might be embarassing for me to not know anything as a computer science student.
Jokes aside. I do think this is one of the more important mods, that not only introduces you to Assembly and C, but also teaches you how things work at the very lowest level.
If Hogwarts offer you a place to study wizardry and magic would you take it? If your answer is yes, this is the closest we can get to magic. How computer works from 0s and 1s used to be magic to be, now I get the privilege to learn how this magic is dowe.
CP2106 Independent Software Development Project
Optional mod, but since most people take it, you take it anyways. After all, it is free 4MCs of credit right?
Yes, but beyond the credits offered, I do think this is a very good mod to take at your year 1 summer. For myself, since I am doing a double degree, I do not have any unrestricted electives (UE) to fill and taking this mod does not really help me fulfill any graduating requirement, but I still chose to take it and here is why:
- It is (probably) your first exposure to software engineering. If you are intending to pursue software engineering, it could be a neat little project for your portfolio, since many year 1s would not have many interesting experiences and projects to showcase anyways. If you are not, at least now you know you do not enjoy it.
- It forces you to be productive. Of course, you can build projects without joining Orbital, but would you? Sometimes we need the extra push, and Orbital’s milestones do just that. If you want to chill during the holiday, that is completely fine. Everyone should take a well deserved break after surviving year 1. I still think that you can do Orbital (spending only a few hours a week) and still a lot of time left to spare. There are various achievement levels that you can opt for.
- It makes you a better develpoer. Honestly, I have learnt a lot from Orbital, I learnt mobile app development, database design and management, cloud functions, authentification, Restful APIs, CI, unit-testing, Project Management, deploying to appstore and playstore, and many more. All these are not taught in your typical CS mods. Needless to say, I have struggled a lot through the whole process, and came out as a better developer, and I am proud to be able to publish my first app to appstore and playstore.
- It gives you a testimony for NOC. This is for those interested in NOC, but take this as a side-effect, don’t make it your main reason though.
- It is fun. Some people might disagree with me on this, but for me, Orbital has been a fun experience. If you come in with the mindset of wanting to clear an easy CS/CU 4 MC mod, you might not enjoy it. But I had an app that I thought off and wanted to built for quite a while and Orbital provides me with the platform to do so. Since I am building something I am passionate about, I enjoy the process throughout (albeit a bit of frustration here and there when debugging and meeting milestones). Thus, I think it is important for you to think hard about what interests you. Afterall, there are no restrictions and you can build ANYTHING! I have seen some really cool games built during the poster sharing session. You can look at the 518 projects for my batch for interesting ideas!
If you are wondering whether or not it is possible to do an internship and Orbital at the same time, I think it is possible and doable, and the commitment level is up to you. For me, I did an internship and started off with Apollo for Orbital. But after making significant progress in the first few weeks and having a big vision for the app, I discussed with my partner and we agreed to upgrade to Artemis. Since we did not start off with Apollo, we were not allocated an external mentor and thus need not conduct meetings with them, which is great given my internship commitment. In the end, we managed to get the Judge’s Choice Award!
Honestly I do not really recommend doing Artemis and internship at the same time. I have to spend a significant amount of time at night and my whole weekends working on the app, leaving little to no room for leisure. Summer is meant for you to rest up so it is completely fine to take it slow. In my case, I am deeply passionate about the app, which is why I am willing to spend so much time working on it. In fact, now that Orbital is over, we plan to continue working on the app!
For those interested, I created SoulScribe with my partner, a gamified AI powered journaling app that generate arts and highlights based on users’ journal entries.
CS2103T Software Engineering
It introduces many software engineering workflows, might not not seem foreign if you have some experience, or if you use proper git workflow for your Orbital.
This is a project intensive module, with a little bit of content sprinkled every week. The content is mainly the various kinds of UML diagrams and their intricacies, which is onveremphasised as compared to the real world. Honestly, I think the biggest learning come with working as a group, which aims to simulate real life software engineering projects.
It felt like there are a mix of collaborative and competitive culture in this mod.
Collaborative - having to do the team project in a group.
Competitive - peer review system is zero sum in an atempt to be comprehensive, by rating someone more, you are going to rate someone else less. People are then incentivised to work beyond what is required. In the end, the workload for everyone increases. Furthermore, you have to find bugs of other teams in the practical exam, and they loss marks for them. The same will be done to you and your group’s product.
Depends on how you see it, the competitive and zero-sum nature of the mod might make it seem a bit toxic.
CS2101 Effective Communication for Computing Professionals
This is a twin mod of CS2103T, where we are attending the same lesson with our groupmates and classmates from CS2103T. Generally for a communication module, I think it is very well designed. I liked the fact that it is intertwined with our project for CS2103T, such as having to give a pitch for our CS2103T app. There are many presentations, many of which are “provisionals”, or preparations for the actual presentations.
I would think that your experience would depend heavily on your class - your tutor and your classmates. Our tutor is very vocal and passionate, which makes the lessons engaging and it felt like she truly wants to help me improve. Shoutout to Ms Serene Eng.
Clasmates are also chill, which makes the presentations less intimidating, as you know that you can fail without being judged. Since there are a lot of feedback sessions, having good enthusiastic classmates makes the experience so much better.
CS2109S Introduction to AI and Machine Learning
Interesting module. The content covers breadth instead of depth. There is also a lot of emphasis of the science behind AI and ML. If you just want to learn how to start doing ML, you might not appreciate it since many of the functions that we are implementating are actually abstracted away in libraries like pyTorch. However, you are required to implement them from scratch, which I enjoy since it allows for a deeper understanding of how ML works from the ground up. The last few weeks are where you start using the libraries’ APIs to solve problems.
Some of the lectures are hard to follow, which is understandable given that the mod is relatively new and they are still experimenting with what works. I find Stat Quest’s videos to be very helpful in visualizing and understanding a lot of the concepts.
Midterm is a theoretical pen and paper test while finals is a practical train-your-own-ML-model test.
CS3217 Software Engineering on Modern Application Platforms
Taking now. So far I am learning a lot. The focus is on creating scalable systems with clean code and good architecture. Workload is high:
- Problem set 0 (week 0 before school starts): around 1.7k lines of code (LoC)
- Problem set 1 (week 1): around 2.3k LoC
For reference, CS2103T individual project is around 1.6k LoC for the whole 5 weeks or so.
Midterm reflection: It’s currently recess week so I survived the first half of CS3217. I would say that it has been an enjoyable learning experience the past few weeks and I feel like I walked out of it a better software engineer.
Take this mod if you want to be challenged to be a better software engineer, even if it means forgoing your CAP/ mental health. I think your mileage might vary, but I do not think that it is an understatement to claim that the workload is very very high. I would say it is around 3 times of CS2030S/CS2040S, or even more. Furthermore, they are very punishing when it comes to grading your problem sets, so finishing the problem sets does not guarantee you good marks as you will get deducted a lot of marks for criteria beyond the requirements of the mark allocation.
CS2105 Introduction to Computer Networks
Content and intensity wise, I think it is one of the chillest mods (relative to a typical CS mod). For a rough gauge - this mod is about 3 hours of work per week (40 minutes of tutorial, 1 hour of lecture assuming you watch at x2 speed, < 1 hour of attempting tutorial). Of course this might be more when there is assignment to submit.
ST2334 Probability and Statistics
Taking now. Still forming opinion.
Business Administration
I want to preface this by saying throughout the reviews, I use a lot of words like “useful” or “fluff”, which are value laden in nature. What I consider “useful” might be different from what you consider “useful”. Maybe this is influenced by my technical background in Computer Science, but I generally consider mods that teach hard knowledge as more “useful” than others, though that is not always the case. I am pretty sure that a lot of the mods that I describe as “fluff” do teach a lot, maybe in ways that are not immediately quantifiable, so just take whatever written with a grain of salt.
BSP1702 Legal Environment of Business
Probably one of the few truly useful Business mod, you get exposed to the various legal aspect of business, such as contract law, the difference between a company, an LLC etc.
I remember applying the knowledge learnt in one of the conversations that I have (it is about how even if you include an exemption of liability clause in your contract, that term might not be valid if it involves injuries or deaths).
BPS1703 Managerial Economics
JC Economics lite, with more calculations.
BPM1701, BPM1702, BPM1705
Just get it done and over with.
MNO1706 Organisational Behaviour
In terms of content, I do not find anything interesting or useful. It felt like the course is trying too hard to apply theoretical frameworks to what would be perceived as common sense. Eg. terms like hygiene factors, frameworks like Maslow’s hierachy of needs etc. are used to explain phenomena that I think can easily explained with common sense.
There are around two group activities, one require a workshop/presentation, another is a video format of an interview + analysis. I did well because my group members are all motivated. There is a final essay component.
All in all, this is one of the mods that you take because you have to. I walked out not learning much. It is also a good “padding mod” for your other intensive modules. I was overloading with 7 mods (with CS2030S and CS2040S) so this is a much needed fluff mod.
MKT1705 Principle of Marketing
In terms of content, I think it is just an example bomb every session. The professor goes through various marketing strategies and examples, and evaluate the rational behind and maybe limitations etc.
To be very honest, I am not very satisfied with the mod since I feel like there is not much depth in terms of the marketing concepts taught, which could be intended since it is an introductory module. However, it seems as if there is a lot of “smoke” when the Professor tries to explain why a specific marketing campaign work or fail. It seems like there are:
- A lot of very critical evaluation on hindsight (X company conducted this campaign, but received this backlash, they should not have gone through with it because A, B, C). I feel like it is easy to criticize when we already know the campaign failed, but that does not give us much insight on how to create a good marketing campaign since:
- There are a lot of contradictions. I cannot really think of specific examples since it was a while ago but I remember having a lot of moments where I was quite unsatisfied. For example, company A create this unique but odd ad and receives a lot of attention, it was praised for being unique and differentiating itself from competitors. Few lessons later, another example was brought up of company B creating a unique but odd ad, except it fails. The professor would then talk about how the reason it fails is because it is straying away from what works. Note that this is a fake example as I could not really remember much, but it seems like the professor always tries to explain backwards, fitting whatever narrative based on the outcome of the campaign. This is why is feels so “smoke-y”. I would prefer for the evaluation to “predictive” instead of “explanatory”. After all, we want to learn how to do proper marketing.
There is a video component and a presentation (with paper writing) component. I suffered through both of them since my group mates are not particularly motivated. It was a bad experience for me. I think this is another mod that is very group dependent. There is also one final individual essay component.
I did decently well for this mod though despite my groupmates, which makes me think that the curve might not be as punishing.
MNO1701 Accounting for Decision Makers
Like BSP 1702, this is one of the few useful mods in the first half of BBA. It introduces you to the basic accounting concepts. Lectures are not recorded but reading the handouts alone should be sufficient.
MNO2705 Leadership and Decision Making under Uncertainty
Honestly I find this mod a bit fluff as well, which is a good “padding” mod if you are taking other intense CS mods. The highlight would be the simulation that we went through in class where we have to make decisions as the CEO, after being presented with different informations presented. Initially I thought the purpose of it is to evaluate the effectiveness of our decision making, but it was later revealed that it is actually to highlight our biases, as the class has received the same simulation with minor tweak in information presented for A/B testing. I find this seesion to be very insightful, as you experience first hand how even yourself are prone to the biases subconciously despite being aware of them from the get go. Other than that, the content felt a bit fluffy to me.
There is a group presentation, and an individual open book assessment.
FIN2704 Finance
Taking now. Still forming opinion.
BSP2701 Global Economy
Taking now. Still forming opinion.
Other
IS1108 Digital Ethics and Data Privacy
fluff
GEA1000 Quantitative Reasoning with Data
hmm
ES2660 Communicating in the Information Age
fluff
GESS1029 Everyday Ethics in Singapore
Taking now. Still forming opinion.