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.)