Posted on

NUS Computing Review: CS1010E Programming Methodology (E)

4% Tutorial Attendance

14% Coursemology Assignments

2% Mock Practical Exam

15% Practical Exam 1

15% Practical Exam 2

15% Mid Term Test

35% Final Exam

Final exam topics: Weeks 1-6, 7b, 8-11

Thoughts: This is a compulsory module for those in Engineering as of AY19/20. If you have never done programming in your life, this module could be a killer. Luckily for me I had done some programming before, but mainly in Java so there was still some challenge for me as this was in a fairly unfamiliar language. The good thing about this module is that it is in Python (which is a language that is probably more beginner-friendly in my opinion) and is supposed to be the easiest of the level 1 programming methodology modules. One of the few disadvantages of this module though (at least for my batch) is that they just changed this module from C to Python (my batch was the first batch) so there was a lack of practice questions during the exams due to the lack of past year papers. It is a really fun module if you love problem solving/puzzles, if not, I hope you are creative; you need some ingenuity to solve the assignment/practical exam questions. The only thing that can save those who hate/cannot do problem solving for this module is that the mid term and the final exams are based mostly on understanding the programming language well in my opinion, rather than knowing how to solve problems; problem solving skills are however, still tested in the practical exams and assignments.

The course was administrated through Coursemology which is an online website; NUS will create an account for you. Announcements, practices questions, course material, exam seating arrangements, assignments, and forums are all available there.

Lectures: The lectures were in my opinion, very good; both lecturers were good at explaining concepts. The lectures, at least for the lecture slot that I went to, were mostly taught by Dr Alan Cheng, and he was quite funny, sometimes bringing memes into the lectures. The lectures are webcasted so there is no need to attend the lectures. However, there was one instance after practical exam 2 when Dr Alan went through how to solve the last question on that exam way after the lecture and I do not think it was webcasted.

Tutorials: The tutorials were a good revision and my tutor, Assoc Prof Tan, often went deeper into the theory which was always interesting and insightful but if you are not as interested in computer science as me and are just taking this because this is a compulsory module, it may seem unnecessary for you. I believe the way he taught did help me understand better even despite knowing some basic computer science theory; I believe this is how I did much better than expected in my exams and assignments. If you think all of that is not necessary, it does carry a 4% weightage in your score so unless you can get 100% in the rest of the 96%, you should probably attend.

Assignments: There are assignments to be submitted through Coursemology that are released every one or two weeks. The assignments were easy for me in general as somebody who has done programming before though some of my friends who have never done programming before do find difficulty in it. I have heard of people who cannot do a single question in some assignments. Each question has some test cases which the lecturers/tutors/teaching assistants set which you can use to check if your program produces the desired output before submitting though a few of the questions are marked manually (those where test cases are difficult to set or where there are too many valid answers). Even if your code produces the correct answer, if it has a long run time, it will still fail the test case so make sure to not just write correct code, but efficient code.

Exams: The practical exams (PEs) are done through a program you have to install called Examplify which can block out your Internet and/or restrict your access to documents but for all of our PEs, only internet access was disabled so you can legally (I think) download manuals, notes, and course material and read them during the exam (I think I even remember my tutor or the lecturer(s) encouraging it); I did not read any of my downloads though because it was not very necessary and there was no time to look through, and even if you really need help, you can use Python’s in-built help function. For IDLE, you have to open it up before starting the exam because the program does not run for some reason after Examplify has restricted your access to things. You should paste your code into Examplify every now and then especially nearing the end because you will not be given extra time to paste the code and Examplify will help you save whatever you pasted and submit it for you when the time stops even if you have not yet pressed submit. After you are finished with the exam, you must submit them through Coursemology again so save your code after the exam.

MPE is 2% of your grade but there is actually nothing to be done; you literally have to copy and paste something and that is all. There are no real questions and can be done in a maximum of fifteen minutes (though 2h are given); it’s meant just to test out Examplify. The only unfortunate thing is that it was on a Saturday, at least for my batch, so we stayed back over the weekend just for that when it could have been carried out at the end of a lecture.

PE1 is as easy as or maybe easier than the assignments in my opinion; if you found the assignments difficult, you will find this difficult as well. Unfortunately conducted on Saturday.

PE2 was a killer, especially the last question. They gave hints for that question but I had no idea how to use them so I had to come up with my own way of doing it and I ended up getting the correct answer just that my answer was unsorted (I did not know it had to be sorted) and it failed their auto checker, leading to me getting 4/25 for that question. You can appeal to ask them to manually check your answer which I did and I managed to get 20/25 instead, with five marks deducted for not sorting. Unfortunately conducted on Saturday.

Midterm exam was an MCQ test of 25 questions that killed a lot of the cohort and I believe they intend to lower it down to less questions in the next batches (which was funny because the faculty admitted they actually wanted to set more than 25 questions during the exam). We were tested more on knowing the language and its little quirks inside and out, not on problem solving through code. Unfortunately conducted on Saturday.

The final exam was an MCQ test of 20 questions (each three marks worth) and four ten-mark open-ended questions. The final exam was pretty similar to the midterm, just with an open-ended part where you have to write code or explain/justify code.

If you take this module, my advice is to learn a bit of programming beforehand. This will save you the trouble of racking your brain to understand how to program itself, rather than using your brain for more productive like actually answering the questions. It should also give you an edge given that a lot of those taking this module, most if not all of them being engineering students, do not know much about programming (at least compared to a computer science student) before they take this module. However, not knowing programming beforehand is not too bad so long as you work hard.

Head over to our Shop for more module content!