CS2105 Introduction to Computer Networks

Module: CS2105 Introduction to Computer Networks

Semester taken: AY 2020/21 Semester 1

Lecturer: Dr Zhou Lifeng and Prof Roger Zimmermann

Tutor: Mr Yehezkiel Raymundo Theodoroes

Textbook: Computer Networking: A Top-Down Approach, Global Edition, 7th ed., James Kurose & Keith Ross, 2016. Pearson

What it is about

This module exposes students to the world of computer networks with a brief introduction on some of the fundamental concepts that make up the Internet. Using the Open Systems Interconnection Model (OSI Model), the module peels away the layers, starting from the application layer, in order to illustrate how computers and devices communicate over the network. Finally, students will learn about some basics of how multimedia is transmitted over the Internet, as well as some basic network security topics.

Assessment components

  • Individual programming assignments: 23%

  • Midterm test: 25%

  • Mock midterm test: 2%

  • Final Exam: 50%


As can be seen from the module's title, the content of the module is indeed an introduction. Many of the concepts taught are very basic and easy to grasp, even for someone who is weak at programming.

I previously took CS1010J under Dr Zhou Lifeng and absolutely loved his lectures, as they are engaging and very simple to understand. Hence, I purposely waited to take this module in Semester 1, as it is the semester where he teaches this module. Unfortunately, he only taught this module for the first half of the semester, and the second half was taught by Prof Roger Zimmermann, which was kind of a letdown.

Nonetheless, this is a very easy module and the bell curve is quite decent. If you have some experience playing around with your home router, this should give you a slight advantage. Some knowledge of the terminology used in networking would be helpful in understanding the concepts taught in class. The material is also important as some companies may ask you about networking concepts during interviews.

Lectures and Tutorials

There are 2-hour lectures every week, and the lectures are structured based on the OSI model, starting with the application layer. The application layer is the layer that contains concepts people are most familiar with, such as HTTP and DNS. The lectures then progress downwards the 5 layers (transport, network, link and physical) as the weeks go by.

The lecture notes are quite detailed and the illustrations are plentiful to aid in your understanding. Even though the lecturer changed midway during the semester, the lecture notes all come from Dr Zhou, so the change isn't too significant.

There are 1-hour tutorials every week, and the tutorials are simply going through the tutorial questions and clarifying of any doubts. The lectures are clear enough, so tutorials often end early with no questions.

Programming Assignments

As this is a CS module, there is bound to have some programming involved. There were a total of 4 programming assignments, and the code can be written in either Java, Python or C/C++. It is recommended to use Python for the assignments, as the syntax is the easiest and does not pose too much problems when working with networks compared to the other two.

The assignments are rather simple, and most of the time the full set of test cases are provided. The assignments take some concepts taught in lectures and gets you to apply them using your programming knowledge. However, it is mostly a simulation (such as packets being dropped, packets being delayed, etc), and some of the methods taught in class would be helpful for completing the assignments.

Midterm Test and Final Exam

The midterm test and final exam were both conducted in the same manner, where the questions are delivered using LumiNUS quizzes with Zoom proctoring. There were 25 questions (mix of MCQs and short answer questions) for the midterm test, for a total of 70 minutes. For the final exam, there were 30 questions (mix of MCQs, multiple response and short answer questions) for a total of 120 minutes. Both exams were open book, and we can ask questions in a specific thread in LumiNUS forum during the exam.

The questions are quite simple and some of the answers can be found in the lecture slides. Also, due to the unique way in which students can ask questions, it is possible to get some hints from your peers based on how they phrased the questions. There was even a question in the final exam where people were debating on it, as it covered a concept that was not taught in class (and the question was subsequently nullified). If you know your material well, the exams should be a breeze and can be completed rather quickly.

Other information

Assignment workload: There are 4 programming assignments to be done either individually or in pairs.

Project workload: None

Readings: None

Recommended if: You are interested in knowing some basics of networking, which I feel is rather important for CS students as interviewers will ask them.

Rating: 4.5/5. A simple and easy to understand module.

Expected grade: A+

Actual grade: A+ (plus a commendation letter)

Last updated