🏫
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
  • Lectures
  • Laboratory
  • Group Project and Written Assignment
  • Other information

Was this helpful?

  1. School of Computing

CS3103 Computer Networks Practice

PreviousCS2106 Introduction to Operating SystemsNextCS3223 Database Systems Implementation

Last updated 3 years ago

Was this helpful?

Module: CS3103 Computer Networks Practice

Semester taken: AY 2021/22 Semester 1

Lecturer: Dr Chan Mun Choon

Tutor: Mr Khooi Xin Zhe

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

What it is about

This module is a continuation of the by diving deeper into certain concepts used in the Internet, such as DHCP, DNS, routing and TCP. Students are expected to keep in mind the knowledge learnt from CS2105, and this module seeks to expand that knowledge. This module also includes a laboratory component, for students to explore networking concepts in an isolated environment.

Assessment components

  • Pre-lab quizzes: 10%

  • Lab sheet/Questionnaire: 30%

  • Group project (part 1): 15%

  • Group project (part 2): 25%

  • Written/Programming assignment: 15%

  • Participation (feedback/Q&A): 5%

Comments

According to the professor, this module was previously part of two separate modules, one that focused more on the theory aspect of networks and the other being the more practical aspect. The two modules were eventually merged to form this module, while taking away some content and putting them into a few of the level 4000 modules. This move makes sense, as it is very helpful to be able to learn some of the concepts in the lecture and subsequently see it in action in the laboratory.

This was also the first time that this professor has taught this module for many years, as it has always been under the charge of Dr Anand. I was quite disappointed at this last-minute change, as I heard many good stories of Dr Anand and was looking forward to taking a course taught by him. The disappointment was valid, as the style of teaching adopted by Dr Chan was not to my liking. However, the lab sessions were very interesting, as they allow you to tinker with actual enterprise-grade devices such as routers, switches and wireless access points.

There are no final exams for this module, so most of the content taught in this module are tested in the lab sessions and quizzes.

Lectures

There is a 2-hour lecture every week and each week covers a certain topic related to computer networks. The topics here do not overlap with the ones taught in CS2105, and will go into greater detail on those that were briefly mentioned in the earlier module. Unfortunately, the way Dr Chan conducted his lectures made me lose interest in the module rather quickly, as he will keep talking about the theoretical aspects in a somewhat monotonous voice. There were also a couple of instances where he rushed through the content, only to have quite some time remaining at the end of the lecture, which he then chose to end the lecture then.

As there were no final exams for this module and the content are only mainly used in the lab sessions, there is little need to listen to the lectures completely. However, if you are intending to take up certifications such as the Cisco CCNA in the future, the lectures will be a good starting point to prepare for the certification exams. Otherwise, it is possible to get by with reading the lecture notes and using Google to supplement the information.

For the participation component, it was not announced by the professor, but there is a midterm and end-of-semester feedback form to be filled in on LumiNUS, which will count towards the final grade. I believe many students missed out on this (including myself), and this is definitely something you would not want to miss, given the steep bell curve of this module.

Laboratory

The lab sessions are held every week for 2 hours, and will cover the topic taught in lectures 2 weeks prior. There will be a pre-lab quiz that will open 24 hours before your designated session, and has to be completed before the lesson starts. Each quiz has around 4 questions and are usually open-ended, which may ask you some theory questions on the content taught in lecture, or some questions pertaining to the lab itself. Hence, always look through the lab sheet before attempting the pre-lab quiz, and understand the setup of the lab. The answers for the theory questions can be easily found either in the lecture notes, or from some simple Google search.

The lab sessions are done in pairs, and I recommend taking the lab session with a friend so that you both can work on the pre-lab quiz together and do some preparation work beforehand. My partner and I would always meet up the day before to run through the lab sheet, take note of the terminal commands that we will need to type, and answer the pre-lab quiz together.

I was lucky to get a really good lab TA who is very knowledgeable with computer networks, and often guide us along the way while we are doing the lab. Some of the lab sessions can be confusing and time-consuming, and it makes the pre-lab preparation work all the more important, so that you do not overrun the time.

Group Project and Written Assignment

The group project has two parts which are unrelated and are done in pairs. By default, your group member will be your lab partner, but you are free to choose another person or even go solo.

The first part of the project was to develop a simple proxy server, which you can use with Mozilla Firefox to browse websites. This was a tough assignment, as not only do you need to make the proxy server work according to the specifications, your marks are dependent on how fast the page loads using the proxy. You are free to use either C/C++ or Python, but my group chose to use C++ as it runs faster than Python, which affects how fast the proxy operates. Unfortunately, we were both unfamiliar with the syntax and it caused quite a few problems along the way.

The second part of the project is to create a job scheduler for a certain set of requests and a cluster of mock servers. This was also quite tough, as the requests come randomly and are of different sizes. The challenge is to come up with a suitable scheduling algorithm so that the overall waiting time for requests is reduced. I have no idea how this is related to computer networking.

Finally, there is a written assignment to be done individually, which asks a bunch of theory questions regarding computer networking. The questions are mostly simple, but some can be tricky and if you make the wrong assumption, will give you a completely different answer.

Other information

Assignment workload: Light. There is a written assignment for the semester and a short pre-lab quiz to be done every week there is a lab session.

Project workload: Heavy. The projects are tough and will take some time to debug, especially if you are unfamiliar with the programming language you are using.

Readings: None

Recommended if: You are interested in learning some of the advanced topics in computer networks, especially so if you are interested in taking network-related certifications in the future.

Rating: 4.0/5. Content is interesting but the professor made it a little boring. Bell curve is steep.

Expected grade: A

Actual grade: A-

introductory module to computer networks