[NUS Module Review] CS1010S: Programming Methodology

CS1010S: Programming Methodology

(INTRODUCTION)
*Endgame Spoiler Alert*
Feeling the hurt that Thor became fat? That Ironman and Black Widow are dead? That Captain America became old? Combine all these feelings together and you have the shittest feeling you'll ever have at CS1010S times 3000. But anywayssssss.....  if you're not a fan of Endgame, just know that CS1010S is a really painful module.

Speaking of which, I have no idea why most of the module reviews I've seen are all saying that CS1010S is nice, or easy, or an okay module. I mean seriously... it's not a good representation of how I would say that the majority of those taking CS1010S feel. But don't worry, because I'm here to give you the flip side of the true nature of CS1010S and why taking this module will be making you regret more than you regret ever dating your exes.


CS1010S is essentially just Python... yes... the mother of all snakes and it seems so fitting that it's describing this module. So welcome to the blog representing the voice of the voiceless after experiencing the cruelty of this module.  

(LECTURERS)
The lecturer that took us was Dr Alan Cheng. I would say that he is very very passionate about what he is teaching and he seems really nice. Sometimes it is hard to understand him because of his slang and accent, but everything about him is okay. Another lecturer would be Prof Leong Wai Kay. For me, I prefer Prof Leong because he suits my style of learning. But to each their own I guess.

So this is where the real issue comes in, and I think it's not just me who has this issue. The lecture notes are really quite hard to understand. And I'm speaking from a perspective of someone who relies heavily on the lecture notes to learn. The thing is, you can only understand close to 30% of it. The other 70% comes from actually doing the code. Here's an example:
- In lecture notes: Lambda x: x + 1
- In tutorials/coursemology: Lambda x: x**2
- In exams: Lambda x : (Lambda x: (Lambda y(x): y) 2z) z*2
Like seriously brah, want so many lambdas for what??? They have more lambdas than my physics and physical chemistry paper combined leh. Omgosh and I'm not even over-exaggerating, because unless you experienced it first hand, you have no idea what we've been through. 
So tip number 1, if you really wanna be smart in dealing with these questions, just go straight to the exam papers and practice. Because lecture notes won't be of much help for you. 

And I'm not saying that lecture notes are all that bad. They are useful in getting the basics, but as we all know, CS1010S don't drift on the basics. Lecture notes can still be useful when it comes to tuples, or lists, or OOP. 

Oh! And the lectures are simply reading off the slides and the occasional showing of how the code works in Python. And you would wonder why the number of people in lectures got from 300-400 plus students in the first week to like 50-60 students by week 4. 

(EXPANSION OF TOPICS COVERED)
The topics covered include:
  • Runes (Not tested for mid-terms, practical or finals)
  • Recursion and Iteration (For, while loop)
  • Order of Growth**
  • Higher Order Functions**
  • Lists**
  • Tuples**
  • Searching and Sorting
  • Dictionaries
  • Object-Orientated Programming**
Out of all these topics, I think I can safely say the one that I get the most was the Object-Orientated Programming (OOP), but since it was the last thing taught in the module, I kinda lost a lot of interest for this module that I didn't appreciate the rest of the chapters. But hey, at least I could understand, lists, tuples, search/sort, and recursion/iteration. The topics with stars are considered to be important topics (i.e must know topics, if not you're basically screwed). However, I'm gonna be honest here, I still have no idea how to even use higher-order functions. 


(PASSING THE ASSESSMENT)
The grading for the assessments are much more evenly spread out in this module, as follows:
  • Coursemology - 25%
  • Tutorial Attendance and Participation - 5%
  • Mid-Term - 15%
  • Practical Examinations - 15%
  • Finals - 40%
So many of you would want to know what on EARTH is Coursemology and why the percentage so high ah? Basically, if you're taking CS1010S, get used to this word "Coursemology" because you're likely to see it every day. :)

To give you an overview of what Coursemology is, it is simply an assignment hub similar to IVLE or LumiNUS. It is a place where you can find notes, exam papers, chat on forums, but most importantly, to do your assignments. What you need to do to get the full 25% is to reach level 50 in Coursemology. Hence, just like a game, you need to do your assignments and earn experience points to get to level 50. Sounds easy, right? Tsk, life ain't that simple brah. 

To reach level 50, one must AT LEAST finish ALL MISSION ASSIGNMENTS, complete/attempt SOME SIDE QUESTS, and complete/attempt ALMOST ALL LECTURE AND TUTORIALS. As to how many missions, side quests there are... There are a total of 13 Missions, 1-2 Side Quests PER MISSION and 10 lectures and tutorials each. If you think this is easy, I suggest you brace yourself before you start because one mission can take you hours, or even days to finish. On top of that, there is a tight deadline to meet for each mission or side quest, and failing to meet this deadline will cause you to lose the experience points, thus making it harder for you to level up. Now, telling you about this wouldn't really give the big picture unless you experience it for yourself. :) I've heard stories of people crying doing these missions and its legit a test of your endurance and persistence. 

Mid-terms would cover up till tuples. It's mostly to test on your understanding of iteration, recursion, code tracing, and higher-order function (trust me, over 80% of the cohort couldn't do Higher-order function so if you don't know too, don't worry). 1 cheat sheet (2 sides of the paper) is allowed.

Practical exams would just be focusing on iteration, recursion, dictionaries, use of excel for coding and especially OOP. The exam is an open book exam so fret not, though no use of the internet is allowed. Then again, it's coding. Cheat sheets are close to useless anyway. 

Lastly, finals will cover everything. Again, 1 cheat sheet (2 sides of the paper) is allowed. Oh, don't forget that there's one bonus question at the end asking you what you learned in CS1010S or to tell them an interesting story of your CS1010S journey, that is worth 4 marks. Or you could write 2 lines and still get that 4 marks.

P.S. I've gotten back my final results and I can safely say that it doesn't matter what kind of crap you write in that last question. You could give your own sob story, or humble brag yourself, or say how much CS1010S managed to change your character from a playful wannabe to a hard working computer nerd and it still wouldn't get you any bonus marks or propel you to a pass or an A. 

THERE IS NO BELL CURVE!!! The lecturers will set a benchmark for passing according to the standard of the cohort and anyone above it will pass. And note the keywords "Lecturers will set a benchmark for passing", because they can snake you whenever they feel like it lol.

(Schedule)
The schedule is pretty stupid honestly. So right, there is the 2 hour lecture every week that is webcasted. Expect the lecturers to utilise 1 hour 40 minutes to 2 hours of the lecture time. A day after the lectures, there will be a recitation class. This recitation class essentially serves to go through what was taught the previous day. Not to mention the things they will go through are the recitation questions that you will need to attempt in order for you to understand what they are going through in class. So the question to you right now is... Are you able to catch up with the pace?

And we aren't done yet! We still got another 1 hour tutorial each week, which will contribute to your class participation. Apparently, they decided to give me 2.5 out of 5 for tutorial attendance even though I attended to ALL of their tutorials. And when I asked why I got this score despite attending every tutorial session, all they said was "Nothing wrong with your attendance." DAFUQ?! Are they competing with me for the number of screw-ups in this module? LOLOLOL

(EXPERIENCE AND FINAL GRADING)
Alright, so here comes the piping hot tea.

The first mission of this module can be described as dating a really nice person without realizing that he or she is a monster inside. Like the questions will be like: x = 4, x + x = ? And then you are like gurlllll, imma be aceing this module before ya even know it but noooooo. That's what they want you to feel. And to be honest, I fell for this trick. I honestly did think that if coding was gonna be similar to this then I'll be riding my way into the sunset on my non-existent unicorn but okay that's truly my bad. I should've seen the signs during the first lecture. 

Boy oh boy was it painful. Like the whole entire lecture was 1 hour 40 minutes because the lecture had 120 slides. But out of those 120 slides, only around 20 were actually Python or coding related. And aside from that, the lecturer decided to prove that he or she can teach the basics of Python in 20 minutes and spend the 1 hour and 20 minutes talking about stuff that possibly has nothing to do with Python. So, I'm guessing the whole point of teaching Python in 20 minutes was to show that you actually can teach in 20 minutes or to show that Python is easy? I'm confused. And personally, I don't think it's the lecturer's fault because he or she might just be following the slides that were prepared for them. But c'mon, if you know that people ain't doing well in Python year in year out, sem in sem out, why prove this? I really don't get it. And some people might say, it's a uni thing that lecturers do teach fast, but the point I'm bringing about is that they want to prove that you can learn Python in 20 minutes. If Python was that easy, why do people keep failing it then?

Then comes the "help" from remedial and "help" through emails. I ain't kidding you... I literally lost all trust in their so called "help" from this incident and just started to rely more on Pythontutor and from my friends for help. So remedial is held once every week from week 3 onwards to help students who are weak in the module. It was conducted by one TA, and this TA remains the same throughout most of the remedial. My friend and I attended this remedial along with several other people hoping for some enlightenment on this forever forsaken module. It was held at around 6.30pm and all of us were getting so tired, but we still made our way to attend that remedial. Some even had to sit on the floor for this remedial. Instead of getting some enlightenment on this module and perhaps clarify our doubts, this TA started talking about math equations and things unrelated to the module for 1.5 hours straight. I kid you not, people in the classroom started to either sleep, stare at each other like "Dafuq he talking about??" or just left the classroom. And I wouldn't blame them because it was utterly horrible. This TA was horrible. I rather see the lecturer deliver his first lecture again 5 more times than attend this monstrosity of a remedial and I'm happy that I won't get to relive it again. It was a COMPLETE WASTE of time attending this remedial. And little did I know, that a couple of weeks before, I actually sought some help from a TA with regards to a coding issue via email and received no reply. Turns out the TA I sought help with was this exact person. Well, guess this TA is the same both online and in real life; helpless. I really hope, for the benefit of those who, despite reading all these, are still gonna take this module, that this TA isn't in charge of your remedial. 

Anyways, let's get on to the real academic stuff. So I gave up after learning runes. It spanned about 2 missions and 3-4 side quests and for the 2-3 weeks, I just felt so depressed because I felt so lost. But as the midterm exam approached, I decided to like pick up some pace and really study for it. I especially focused on code tracing, because I felt that it could give me lots of essential marks, making up for the other parts of the paper which I knew I was gonna screw up. In the end, I admit that I didn't do well and was positioned at the 25th percentile. :(

Then came Practical Examinations (PE), which was mostly OOP and recursion/iteration. Since it was open book, I printed over 4 test papers and brought them in so that I could compare and contrast the difference do the OOP part, and was so so happy when I got the code out. And yay! I didn't fall inside the 25th percentile!!!

Finals were the shit. And by shit, I actually mean that my paper could have been possibly used as a toilet paper by the lecturers. That's all you gotta know peeps.

Overall, this module took quite a lot of my time. And as mentioned in other blog posts, it will drain you out mentally, physically, emotionally and everything else in-between. I suffered, my friends suffered and every module that I thought was the worst so far, CS1010S begs to defer because of how crap it is. Again, all these are just my opinion. If you feel nothing but love for CS1010S, then sure! I'm happy for you, but to me, this module is the scorn of the earth. I'm happy that through this post, people will get a varied opinion of a module (in fact, I've always said at least something bad about a module because I believe that no module is perfect from the top down) rather than hearing the same old "it's easy" every time.

I strongly recommend people NOT to take this module at all because I just don't want you to suffer. The lecturers are just averagely okay to be honest with you. The TAs are beyond thrash and this module just forces you to spend too much time focusing on it that you end up neglecting other modules around you. 

**Some additional tea for you guys: my tutor for my tutorials was actually my ex-secondary school schoolmate, and golly gosh he was absolutely a... NIGHTMARE. CS1010S tutorials are taught by many, many student tutors because of the class size. And I blame it on my poor luck that I had him as my tutor because comparing to other tutors, he was not helpful, not responsive to questions, and very similar to that TA above. I switched to other classes after a few lessons. And if you're my tutor and you're reading this, just know that I thought you were a pretty cool and nice guy back in Secondary School but after this module, thank you, NEXT. **
.
(CONCLUSION AND TIPS)
Okay, I feel so much better after the rant/description of this module. I've been waiting months and months just to get this off my chest. But hey, if everyone just says the good stuff and no one actually informs people how this module really is like, then there is no way this module will improve for the better in the upcoming semesters and years. So take it with a pinch of salt and get the gist of what I have been saying in this post.

Nonetheless, I would highly recommend you NOT TO TAKE THIS MODULE unless (a) you're super good at programming like Python, etc. or (b) you're very free in that particular semester. Otherwise, be wise. This module took 5 years away from my life because of the constant stress and I only wish that my readers will not make the same mistakes I did. 

Just don't take this module lol. Don't say I didn't warn you.

Have fun programming! 😏

Ratings out of 5⭐:
  • Should you take this module - Nah to the ah to the no no no
  • Degree of doability - ⭐
  • Bell Curve (to favour you) - None
  • Rigor - 



Comments

  1. I wish I saw this review earlier, as a FASS student I'm crying into the depths of hell now :") If you're comfortable with sharing, what was your final grade?

    ReplyDelete
    Replies
    1. Hi! I'm usually not into sharing grades but it wasn't that good HAHA. I know how you feel though. This was a truly painful experience for me personally. However, I think that if Coursemology (if they are still doing this) is done really well, passing should not be a problem, that is assuming that you do not screw up Mid-terms and Finals ah. But all the best! What doesn't kill you makes you stronger :)

      Delete
  2. Happy to have my boyfriend back after 3 months of breakup,


    Thanks to________________________________ Robinsonbuckler11@gmail.com


    Contact him for Relationship/marital problem


    ********************************************


    Thank you

    ReplyDelete
  3. I have never read a blog post this relatable. My cs1010s finals is tmr and I feel so comforted after reading this post. Thanks for writing so authentically and for portraying your emotional trauma so vividly. I love your writing style :)

    ReplyDelete
  4. I want to share my testimony with those who suffer from third parties in their marriage. My husband started seeing a girl from the next block, I confronted her about leaving my husband alone, she wouldn't listen and my husband wouldn't stop going to her even after we had a fight. gradually my husband left me for the girl, i was so frustrated that i wanted to divorce my husband, because the marriage didn't work anymore. Until I saw a comment about Dr. Ellen, how she has helped people with their relationship and marriage issues. I reached out to her and she helped me manifest love once again in my life, my husband is back home, my family is united again. I know many people are suffering from heartbreak the same way I felt then, so I'm taking the time to share with those who need help. contact Dr Ellen WhatsApp: 09074881619
    Email: ellenspellcaster@gmail.com

    ReplyDelete

Post a Comment

Feel free to share your views :)