CS1010E - Programming Methodology Review

CS1010E

Taken in: AY21/22 Semester 1
Lecturer: Dr Alan Cheng, Dr Adi, and Dr Khoo
Tutor: Student TA

Grading:
  • 14% - Assignments
  • 14% - Midterm
  • 2% - Mock PE
  • 20% - PE1
  • 20% - PE2
  • 30% - Final

CS1010E is the Engineering department's introduction to programming using Python as the language. I took this to fulfil a CS module requirement for the IMD minor. This module covers the basics of programming using Python.

The long and short of it: If you have background in computational thinking, this module is a piece of cake. Else, be prepared to put in time to practice. Take it with a grain of salt, but I personally think this module is OK, just that most of the vocal crowd feel it's difficult. The reason why people call it a "20MC module" is because you need time to practice if you go in unprepared.

The reason why I say this module is not as hard as others make it to be is because there are a wealth of resources available online to learn Python and programming in general. I don't think it's cheating to prepare beforehand, and this module isn't graded on a curve anyway. If you know that this module is required for your degree, I highly suggest going through some of these online courses beforehand (during the holidays) because CS1010E can be quite fast paced at the beginning and you don't want to fall off. I'll link some useful courses at the end.

On that note, the training questions are not compulsory and I skipped most of them because they were unnecessarily complicated and I didn't really learn much from doing them. If you ask me, just doing past year papers and studying the assignments are enough to prep for the exams.

For minor requirements (Such as IMD), I recommend taking this module over other CS1010 variants as CS1010E is typically easier, with CS1010S supposedly being the hardest. CS1010 is in C, which you might prefer if you intend on learning C++. The syntax and style of C is also closest to JavaScript among these.

Note that there is a one-way preclusion with NM2207. Make sure to take NM2207 BEFORE you take any CS1010 module if you're going for IMD.


Detailed Breakdown

Concepts Taught

Briefly, this module will cover the basics of Python: Syntax, Data Types, Higher Order Functions, File input/output, Classes, Exception Handling.

More abstract concepts also taught include: Recursion, Multi-Dimensional Arrays, Object-Oriented programming, Space/Time Complexity, Algorithms (Search/Sort).

Shit goes pretty fast so that's why I recommend you don't take this module without preparation, as you'll easily fall behind. Unfortunate for an introductory module. Most people who take this module are forced to take it, so may as well just prepare over the holiday. I don't consider it cheating.

Assignments

There are 7 assignments that are spread throughout the weeks. You'll typically be given 2 weeks to complete each assignment. Assignments usually have about 3 questions where you have to code a function, an example would be comparing if two inputs are anagrams. These follow from concepts taught in class, and you are not encouraged to use concepts that haven't been taught yet.

Practical Exams (PE1 and PE2)

Practical exams, as the name implies, require you to code solutions based on the problems given. These are very similar to the assignments. Typically, they will be 2 hours long and held on Saturdays (Due to the large number of students taking this module).

The mock PE is there to familiarize you to the exam format, and is a free 2% for following exam procedures.

You are expected to use IDLE as the code editor for exams.

Midterm and Final

These two exams follow similar formats: A bunch of MCQ questions, where you have questions such as "read this code and choose the expected output", and some fill-in-the-blank questions where you have to complete segments of code. Both PE and Exams are CLOSED BOOK (Which is kind of dumb for programming) but you are allowed 1 double-sided A4 cheat sheet and 1 blank paper for scratch work.

You NEED to know how to trace code to do well for these. You also need to have a strong foundation of the basics. For this, the coursemology trainings will be close to midterm/final style of questions.

All classes, tutorials, and assessments were conducted online due to the Covid-19 situation. Formats may change in the future.

Resources

Here are some links to courses that you may find useful in getting a headstart in programming.

Also, hearsay the exams are leetcode questions. You can try practicing those.

Expected grade: A+

Actual grade: A+

Reviewed by: ZH

Comments

Popular posts from this blog

LAK1201 - Korean 1 Review

CS2113/T - Software Engineering & Object Oriented Programming Review

GES1041 - Everyday Ethics in Singapore Review