🏫
Module Reviews
  • Welcome
  • School of Computing
    • CP2106 Independent Software Development Project (Orbital)
    • CS1010J Programming Methodology
    • CS1231 Discrete Structures
    • CS2030 Programming Methodology II
    • CS2040 Data Structures and Algorithms
    • CS2100 Computer Organisation
    • CS2102 Database Systems
    • CS2103 Software Engineering
    • CS2105 Introduction to Computer Networks
    • CS2106 Introduction to Operating Systems
    • CS3103 Computer Networks Practice
    • CS3223 Database Systems Implementation
    • CS3230 Design and Analysis of Algorithms
    • ES2660 Communicating in the Information Age
    • IS1103 IS Innovations in Organisations and Society
  • NUS Business School
    • ACC1701 / ACC1002 Accounting for Decision Makers
    • BSP1702 / BSP1004 Legal Environment Of Business
    • BSP1703 / BSP1005 Managerial Economics
    • BSP2701 Global Economy
    • DAO1704 / DSC1007 Decision Analytics using Spreadsheets
    • DAO2702 / DSC2008 Programming for Business Analytics
    • DAO2703 / DSC2006 Operations and Technology Management
    • DBA3701 / DSC3214 Introduction To Optimisation
    • DBA3712 / DSC3224 Dynamic Pricing & Revenue Management
    • DOS3701 / DSC3201 Supply Chain Management
    • DOS3703 / DSC3203 Service Operations Management
    • ES2002 Business Communication for Leaders
    • FIN2704 / FIN2004 Finance
    • FSP4003 Field Service Project
    • MKT1705 / MKT1003 Principles of Marketing
    • MNO1706 / MNO1001 Organisational Behavior
    • MNO2705 / MNO2007 Leadership and Decision Making under Uncertainty
  • Other faculties
    • GEH1035 Phy’cal Qns from Everyday Life
    • GEQ1000 Asking Questions
    • GER1000 Quantitative Reasoning
    • GESS1025 / GES1035 Singapore: Imagining the Next 50 Years
    • GET1004 / GEK1531 Cyber Security
    • LAM1201 Malay 1
    • LAM2201 Malay 2
    • MA2001 / MA1101R Linear Algebra I
    • MA1521 Calculus for Computing
    • PC1141 Introduction to Classical Mechanics
Powered by GitBook
On this page
  • What it is about
  • Assessment components
  • Comments
  • Lecture
  • Tutorial
  • Mid-term test
  • Finals
  • Other information

Was this helpful?

  1. School of Computing

CS1010J Programming Methodology

Module: CS1010J Programming Methodology

Semester taken: AY 2018/19 Semester 1

Lecturer: Dr Zhou Lifeng

Tutor: Mr Subhodip Mandal

Textbook: “Introduction to Programming with Java – A Problem Solving Approach”, 2nd edition, by John Dean and Raymond Dean, McGraw-Hill (no, you do not need this textbook at all)

What it is about

This module introduces the basic and fundamental concepts of programming to all Information Systems students with or without any background in programming. It is taught in Java (as opposed to the other CS1010-equivalent modules taught in other languages) and serves as a pre-requisite for higher-level programming modules (such as CS2030 and CS2040). You will learn how to write a simple program with a maximum of around 200 lines, implementing logic such as selection statements, loops, arrays, basic OOP and simple recursion.

Assessment components

  • 8% - Tutorial Attendance: Attended at least 8 out of 10 tutorial lessons.

  • 8% - 4 Problem Sets (homework): Small coding assignments to be done at home and submitted to CodeCrunch.

  • 10% - Mid-term Assessment: 1-hour open-book test (20 MCQs).

  • 24% - 2 Practical Exams: Each 1 hour 30 minutes of coding on the school’s computer (2 questions).

  • 50% - Final Assessment: 2-hour open-book test (mix of short answers writing the output of a program and long answers of writing the code of a program).

Comments

This module is the first module that exposes students to the world of programming and covers the basics of writing a simple program using selection statements, loops and arrays (including 2D arrays). Basic Object-oriented Programming (OOP) and recursion is also taught towards the end of the module in preparation for the higher-level modules.

As someone with prior experience in programming, it certainly helped a lot in allowing me to solve problems at a much faster pace than my peers, since I was already used to computational thinking. However, do not take this advantage for granted, as the lecturer knows how to set questions that can catch you off guard, especially if you are a self-taught programmer.

Lecture

The lecture went at a rather slow pace as the module is designed for students with or without prior programming background. The lectures tend to dive into the theory in-depth, which made it a little difficult for me to stay awake for them. The lecture notes provided were comprehensive enough and need no additional annotations, especially if you have prior background. However, the lectures are not webcasted and it is recommended that you attend the lectures in case you happen to have gaps in your knowledge. I have seen people going for lectures to just do the problem set assignments while listening to the lecture.

Tutorial

The tutorials are 2 hours every week. The tutorial questions are released early in the week, sometimes before the lecture, so you can do them early if you have prior experience in programming. The tutorial group that I was in had a good mix of strong and weak students and the tutor tried to keep everyone engaged for the lesson. Most tutorials end within 1 hour though, and the rest of the time is spent on catching up with the bi-weekly problem set assignments

The problem set is a set of approximately 30 coding assignments that you can do at home and submitted to CodeCrunch, which is an online platform for automatically grading those coding assignments. You will need to do 10 assignments before the deadline, inclusive of a compulsory assignment that the lecturer will pick. I strongly advice that you do all the assignments and pace yourself sufficiently so that you can do at least 1 assignment per day. This is especially useful for helping you to get used to computational thinking and also for your revision purposes.

Mid-term test

This was the first semester that the module had a mid-term test. Most of the questions involved tracing, which is to read the code of a program and determine the output. Many of the answers are very similar to one another, so it is easily to be caught off guard. 1 hour is definitely not enough for you to finish the paper, so there may be many instances that you will need to take some shortcuts in tracing the program. As a result, many did not do well (myself included) as the mock paper given to us had a different difficulty level than the actual.

There are also another 2 practical examinations that are 1 hour 30 minutes long and requires you to solve 2 long programming questions. You will be using a computer with no internet access except to CodeCrunch to write your code and to submit them. Many of my peers suffered in this component as the question can be very lengthy and difficult to determine what exactly needs to be solved. Hence, it is important that you plan carefully what are the different functions that you will need to write for your program during the first 10 minutes. You will also need to think of possible edge cases that your code will fail in, as you will not be given access to all the test cases that your program will be checked against.

Finals

The final examination is a 2 hour open-book test that involves tracing and writing of code on paper. If you have practiced sufficiently with your problem set assignments, you should be able to do relatively well for this segment. If you are not used to writing code on paper, try doing so for your tutorials instead of using the computer.

All types of programming methods that you have been taught will be tested. Usually, it is the basic OOP or recursion that will be very difficult and take up the bulk of your time for the test.

Other information

Assignment workload: There is only 1 tutorial per week, but many assignment questions in the 4 problem sets, which may take up quite a bit of your time per week depending on your strength in programming.

Project workload: No projects.

Readings: Very light. There is a recommended textbook but I only knew of it when I was writing this module review. Don’t bother wasting your money on that, the lecture notes are sufficient.

Recommended if: A compulsory module for all Information Systems students. If you are a computing student from another course or a non-computing student, there are other CS1010-equivalent modules that you are qualified for instead. This module is strictly from Information Systems students only.

Rating: 4.5/5. I love programming and the things taught in this module can sometimes be rather thought-provoking. However, who writes code on paper now?

Expected grade: A+

Actual grade: A+ (Okay, I was a little too confident for this module, but because this module is not graded on the bell curve, it is definitely possible if you put in consistent effort)

PreviousCP2106 Independent Software Development Project (Orbital)NextCS1231 Discrete Structures

Last updated 3 years ago

Was this helpful?