Network Programming and Design

Home Admissions Course Guide Network Programming and Design

This Course Guide has been taken from the most recent presentation of the course. It would be useful for reference purposes but please note that there may be updates for the following presentation.

COMP 2120SED

Network Programming and Design

Welcome to COMP 2120SED Network Programming and Design! This is a six-credit-unit, 2000-level course on computer networking that leads towards the core elements of the BSc/BSc(Hons) in Computing and Networking. It is also suitable for students who would like to acquire knowledge about network programming.

The course comprises eight study units covering networking principles, network design and network programming, with its primary focus on the Internet. The contents are tailor-made for students in Hong Kong by keeping the local environment in perspective as far as appropriate.

COMP 2120SED aims to introduce you to the fundamental principles and techniques of network programming and design. It will also cover a range of relevant contemporary topics including wireless technologies and network security. The course will equip you with practical knowledge that both lays the groundwork for the study of higher-level IT courses at HKMU, especially those relevant to networking, and that can be applied to your work. You will not only study concepts, principles and techniques, but also be given the opportunity to put them into practice through lab sessions.

There are no prerequisites for this course, although you should be proficient in using computers and accessing the Internet.

 

Course aims

COMP 2120SED aims to:

  • introduce you to the fundamental concepts of networking;
  • develop your ability to apply the design and operating principles of computer networks and the Internet;
  • equip you with practical skills related to network design and network programming;
  • introduceyou to the latest technologies and developments of networking; and
  • demonstrate the application of networking concepts through case studies and real-life scenarios.

Course learning outcomes

By the end of the course, you should be able to:

  • explain the fundamental principles of network infrastructure and common network protocols;
  • perform TCP/IP network programming using sockets;
  • design and develop basic Internet applications;
  • explain the underlying principles of wide area networking, wireless technologies and network security; and
  • design typical network systems for real-life scenarios.

The following introduces the organisation of the course content, the materials provided or required, and information on course assessment. After going through them, you will be ready to set off on a journey into the realms of network programming and design!

 

Organisation of course content and study units

In addition to this Course Guide, the course will provide or expect students to have access to following materials or resources.

 

Study units

All COMP 2120SED study units will be presented to you in hard copies and uploaded to the course Online Learning Environment (OLE) as PDF and ePub files. There are eight study units, as follows:

  • Unit 1 introduces the fundamentals of computer networks and the Internet, providing an overview of the basic concepts and operating principles of computer networks, and giving you a general understanding of how computer networks are developed for the purpose of transferring data and facilitating communication between endpoint devices.
  • Unit 2 covers the basics of network infrastructure, including concepts such as data transmission through different types of media and network equipment with different functions and roles in computer networks. You will also learn about network topology, switching, and Ethernet, as well as different server operating systems used for managing computer networks.
  • Unit 3 discusses the core protocols and more detailed mechanisms and operations in computer networks, like IP addressing and routing, according to the layers specified in the OSI models. The essentials in the TCP/IP are elaborated on to equip you with a basic knowledge of connection establishment and socket communication.
  • Unit 4 provides a step-by-step guide to implementing TCP and UDP sockets using C++ programming. The unit begins by introducing the basics of the C++ language, including syntax, logic and object-oriented programming concepts. Based on this knowledge, you will be guided to write client and server programs that implement socket communication over TCP and UDP protocols.
  • Unit 5 focuses on application-level network programming, specifically Internet application development. You will be introduced to the concepts and technologies of web and Internet applications and will learn how to develop Internet applications using both client-side programming languages (such as HTML, CSS and JavaScript), and server-side programming languages (such as PHP).
  • Unit 6 introduces more advanced topics in Wide Area Networks (WAN) and wireless technologies, including Virtual Private Networks (VPNs), wireless LANs (IEEE 802.11 family), Bluetooth, and wireless network security measures such as SSID, WEP (Wired Equivalent Privacy), and Wi-Fi Protected Access (WPA and WPA2).
  • Unit 7 deals with network security. It introduces different kinds of security issues and potential risks in computer networks, and provides relevant measures that can be taken to reduce or prevent them during network design, including cryptography, authentication and network security control methods. You will also be introduced to different security protocols and how to securely connect to a remote device or set up passwords to protect your websites.
  • Unit 8 consolidates the concepts and knowledge learnt in previous units and provides an overall idea of network design for real-world scenarios. You will learn how to analyse user requirements, design a network for specific cases, and propose solutions that satisfy both business and technical goals.

Reference textbooks

Three textbooks, which supplement each other, are recommended for reference in the course:

  • West, J, Andrews, J and Dean, T (2019) Network+ Guide to Networks, 8th edn, Cengage.
  • Stroustrup, B (2014) Programming: Principles and Practice Using C++, 2nd edn, Addison-Wesley.
  • DuRocher, D (2021) HTML and CSS QuickStart Guide, ClydeBank Media.

Supplementary readings

Several supplementary readings taken from reference books or online articles may be recommended for helping you understand certain topics. Access to the relevant materials will be provided in due course.

 

Presentation Schedule

The Presentation Schedule for this course is available on the OLE. On this schedule, you will see the approximate time for completing assignments, attending tutorials and surgeries, and so on.

 

Assignments

All the assignments for this course will be released as electronic copies through the OLE with submission due dates in accordance with the timetable provided in the Presentation Schedule. Once an assignment is released, you will be required to download and complete it within the indicated period and submit your work electronically through the relevant submission links on the OLE. For more details about the assignments, please refer to the 'Assessment' section of this Course Guide.

 

Lab materials and software toolkits

The course will include several lab sessions and programming exercises to equip you with practical skills in network programming and design. Lab manuals and instructions are included in the corresponding study units, while external materials like software and toolkit files required in the labs may be provided separately on the OLE or through online links.

You may also be provided with access to a remote Unix-based server, which allows you to connect and log in to it remotely, run commands, manage files, or execute programs on it.

Due to the rapidly changing nature of the contents in this course, updates to lab materials may also be provided if applicable.

 

Equipment requirements

To access the OLE platform, complete assignments and work on the practical lab sessions and programming exercises in this course, you will need a personal computer (PC) or similar devices that satisfy the following minimum hardware and software requirements:

Hardware

  • Intel or AMD CPU (4 GHz or above)
  • 8 GB System RAM or above
  • 100 GB or more free hard disk space
  • A colour monitor
  • A keyboard and mouse
  • A network connection and Internet access

Software

  • Operating Systems (OS) installed (Microsoft Windows 7 or above is suggested.)
  • Browser (The latest version of Chrome, IE or Edge is suggested.)
  • Text and source code editor (NotePad++, which can be downloaded from the Internet, is suggested.)
  • Document file processor (The latest version of Microsoft Office Word is suggested.)
  • PDF reader (The latest version of Adobe Acrobat is suggested.)

The following table summarises the assessment of this course:

 

Assessment componentsWeighting
Continuous assessment50%
      Assignment 116.66%
      Assignment 216.66%
      Assignment 316.66%
Examination50%
Total100%

 

Assignments

There are three assignments that count towards the overall continuous assignment score (OCAS) of COMP 2120SED, which altogether are worth 50% of your overall course score (OCS) for this course. The three individual assignments have equal weightings, with each of them accounting for 16.66% of the OCS.

The assignments will examine your understanding of the topics covered in the course, your ability to apply what you have learnt to analyse and solve problems, and your motivation to explore relevant technological developments.

 

Final examination

There will be a final examination for this course, which is worth 50% of the OCS. The examination will be centrally arranged by the University and by default it will be a two-hour closed-book written examination. The format and other details of the examination paper will be provided as a specimen paper and/or through announcement by email or Course News on the OLE near the end of this course.

 

Passing criteria

To pass the course, you are required to obtain a mark of at least 40% in both the overall continuous assignment score (OCAS) and the final examination.

The following table provides an overview of the course arrangement, which is tentative and may be subject to adjustment.

 

UnitNo. of weeksAssessment
1Fundamentals of computer networks and the Internet4 
2Network infrastructure basics3 
3OSI layers and TCP/IP essentials6Assignment 1
4Socket programming using C++6 
5Internet application development5Assignment 2
6Wide Area Networks and wireless networks2 
7Introduction to network security2Assignment 3
8Network solution design2 
 Revision2 
 Total32 

You will be supported throughout this course both by face-to-face sessions and through the Online Learning Environment. You will also be assigned a tutor who will support you in your learning throughout the course.

 

Tutors, tutorials and surgeries

There are six two-hour face-to-face tutorials, and six two-hour surgeries designed to help you in this course. Although these tutorials and surgeries are not compulsory, you are strongly encouraged to attend them.

Your tutor will mark and comment on your assignments, keep a close watch on your progress and on any difficulties you might encounter, and will try to help you during the course. As mentioned above, your assignments should be submitted through the OLE to your tutor before the due date. Your tutor will mark them and return them to you as soon as possible.

Do not hesitate to contact your tutor by telephone, email, or post questions on your group's discussion board if you need help! For example, contact your tutor if:

  • you do not understand any part of the study units or the assigned readings;
  • you have any difficulty with the self-tests or the course activities; or
  • you have a question about or problem with the assignments, with your tutor's comments or the grading of an assignment.

You will be notified of the dates, times and location of the tutorials and surgeries, together with the name and phone number of your tutor, as soon as you are allocated a tutorial group.

 

Online Learning Environment (OLE)

This course is supported by the Online Learning Environment (OLE). You can find course materials and the latest course information on the OLE, and use the discussion board to communicate with your tutor, the Course Coordinator and fellow students.

COMP 2120SED Network Programming and Design introduces you to network programming and design techniques. Topics related to networking and the Internet, including its underlying mechanisms, the services available and programming for it, are also discussed. Theoretical concepts and practical techniques are integrated with the practical analyses of case study design and programming problems.

In order to understand the content of this course, you must analyse the course materials and apply the concepts learnt. We hope you will find COMP 2120SED Network Programming and Design both interesting and enjoyable, and be able to apply the knowledge and skills from this course throughout your career.

Good luck and we hope that you will achieve great success and satisfaction from this course.

Mr Albert Luo (2023 redevelopment, COMP 2120SED)

Mr Luo received his MSc Degree in Computer Science and Information Engineering from the National University of Singapore in 1997, and his BSc Degree in Electrical and Electronic Engineering from the University of Hong Kong in 1988. He has over 30 years of experience in the IT field, with the past 12 years spent overseeing the implementation of several major IT systems for the Water Supplies Department. Mr Luo has extensive experience in software development, including SQL and database utilisation, mobile device applications, and client-server software development.

 

Mr John N K Wu (original course, ELEC S212)

Mr Wu received his MSc Degree in Computer Science and BEng Degree in Information Engineering from the Chinese University of Hong Kong. He has been working in the IT field for almost 15 years, specialising in networking and application development, and has earned a number of professional certifications in the areas of computer networking, IT security, Linux, etc. Currently, his work focuses on network infrastructure support, mobile/wireless applications and IT security. He is also serving as a part-time tutor at HKMU.

 

Mr Jacky Mak (original course, ELEC S212)

Mr Mak received his BSc Degree (First Class Honours) in Applied Computing from Hong Kong Metropolitan University (HKMU). He has worked intensively on website development, infrastructure design, and systems and network administration since 1996. Currently, he is working for Hong Kong Cable Television Limited, overseeing a number of Web, application, database and video streaming systems. He is also a part-time tutor at HKMU. Mr Mak is studying for an MSc degree in Computer Science at the Chinese University of Hong Kong, and he holds professional certifications from Microsoft, Sun Microsystems and the Linux Professional Institute.

Coming soon