Contents

Course Details

Course Code COMP3331/9331
Course Title Computer Networks and Applications
Units of Credit 6
Lecture Salil Kanhere
Admin Ayda Valinezhad Orang
Classes Lectures: Mon 09:00-11:00 Hrs, Wed 12:00 -14:00 Hrs, Location: room: AinswthG03
Timetable for all classes.
Consultations Tuesday 16:30 - 17:30
  • Join from PC, Mac, Linux, iOS or Android: Zoom Meeting (password: 240975)
  • When you join, you will, by default, enter the lobby. I will let you in. If I am with another student, please wait for some time, and I will let you in. First come, first serve.
Course Website www.cse.unsw.edu.au/~cs3331
Course Contact Email cs3331@cse.unsw.edu.au
Course Forum https://edstem.org/au/courses/10599/discussion/
Join the forum via the following link: https://edstem.org/au/join/kHK8MH
Handbook Entry Handbook Entry

Course Summary

This course is an introductory course on computer networks aimed at students with a computer science / electrical engineering background. We will focus on common paradigms and protocols used in present data communication. Through lectures, in-class activities, labs and assignments, you will learn the theory and application of:

(1) Medium access control, congestion control, flow control, and reliable transmission,

(2) Addressing and naming,

(3) Routing and switching,

(4) Widely used protocols such as Ethernet, IP, TCP, UDP, HTTP, etc.

(5) Security threats and standard defensive techniques, and

(6) Special-purpose networks include content delivery, peer-to-peer, and wireless networks.

This is a combined undergraduate and postgraduate course.

Course Timetable

There will be 4 hours of lectures every week:

(i) 2-hour lecture on Monday from 09:00 - 11:00 and

(ii) 2-hour lecture on Wednesday from 12:00 - 14:00

We plan to run in-person lectures, location: room AinswthG03. Video recordings will be available for viewing.

There will be 2-hour labs during 8 weeks (starting in Week 2). Most of the labs will be held in person, but a few online labs are also available. The detailed lab schedule will be posted on The detailed course timetable is available here .

Course Aims

  • To provide an in-depth introduction to a wide range of topics in the field of computer networks, including the Internet.
  • To get a hands-on understanding of the working of network protocols.
  • To gain expertise in network programming, designing and implementing network protocols, evaluating network performance and problem-solving skills.
  • To build the necessary foundational knowledge required in subsequent networking courses (COMP4335-4337, COMP6733, COMP9332-9337).

Student Learning Outcomes

After completing this course, students will:

  • Have a working knowledge of computer networks and will be able to demonstrate by describing aspects of the topics and by solving problems related to the topics.
  • Have a solid understanding of the current architecture of the Internet and the entities involved in its operations.
  • Be able to identify soundness or potential flaws in proposed protocols.
  • Be equipped with the necessary skills to design networked applications and protocols.
  • Implement and write protocols and applications in C, Java or Python.
  • Analyze and evaluate the performance of computer networks.
  • Be able to capture and network traffic.
  • Be able to understand and explain security and ethical issues in computer networking.


This course contributes to the development of the following graduate capabilities:

Graduate Capability

Acquired in

Scholarship: of their discipline in its interdisciplinary context

Lectures, labs, assignment

Scholarship: Capable of independent and collaborative

Labs, assignment

Scholarship: rigorous in their analysis, critique, and reflection

Lectures, labs, exams, sample problems

Scholarship: able to apply their knowledge and skills to solve problems

Labs, assignment, exams, sample problems

Scholarship: capable of effective communication

Labs, assignment, lectures, exams

Scholarship: digitally literate

All aspects of the course

Scholarship: information literate

All aspects of the course

Leadership: collaborative team workers

Labs, assignment

Professionalism: capable of independent, self-directed practice

All aspects of the course

Professionalism: capable of lifelong learning

All aspects of the course

Professionalism: capable of operating within an agreed Code of Practice

Labs, assignment

Global citizens: culturally aware and capable of respecting diversity and acting in socially /responsible ways

Labs, course forums

Assumed Knowledge

Before commencing this course, students should:

  • Have a good understanding of data structures and algorithms, basic probability theory.
  • Be able to write working programs in C, Java or Python. The course will include a programming assignment and lab exercises.

Teaching Rationale

This course takes a top-down approach to teach computer networks. The rationale is that most students have first-hand experience using applications over the Internet. This allows them to relate to each protocol stack layer as we travel down the layers. Once they are committed, they participate in appropriate cognitive aspects, such as learning the details with a focus on understanding them. Students get mentally prepared to answer questions. Very often, there is no single answer, or the answers can be unexpected. This results in deep learning and gives students a sense of accomplishment and confidence.

Learning will be largely facilitated through the delivery of lectures. The hands-on laboratories will provide an opportunity to gain a deeper understanding of the concepts discussed in the lectures. The sample problems, homework problem set, and tutorials will help develop problem-solving skills and prepare for the exams. The programming assignments are mainly geared to allow students to gain familiarity with basic network programming and designing network protocols.

Teaching Strategies

  • Lectures: introduce the theory and demonstrate how they apply in practice
  • Lab Work: reinforce concepts taught in lectures by conducting hands-on experiments and network performance
  • Assignment: allow students to design and implement network evaluate network performance
  • Homework Problems: allow students to solve problems based on content from lectures, develop problem-solving skills, assist with exam preparation
  • Consultations, Tutorials and Course Forum: allow students an opportunity to ask questions and seek help.

Assessment

There will be four assessment components as listed below:

Component Weight
Lab Exercises 20%
Programming Assignment 20%
Mid-term Test 20%
Final Exam 40%

To pass the course, a student MUST receive at least 40% marks in the final exam. The following formula outlines precisely how the final mark will be computed:

lab = marks for lab exercises (scaled to 20) 
assign = marks for the programming assignment (out of 20 marks) 
midTerm = mark for the mid-term exam (out of 20 marks) 
finalExamScaled = scaled mark for the final exam (out of 40 marks) 
mark = lab + assign + midTerm + finalExamScaled 
grade = HD|DN|CR|PS if mark >= 50 && finalExamScaled >= 16 
      = FL          if mark < 50
<p>      = UF          finalExamScaled < 16</p>
In this course, the final and mid-term exams will be using the Inspera online platform, which you will get access to from a link in the course Moodle site. The exam times will be announced well in advance. You can sit for the exam from a place of your choosing. More information for students about Inspera can be found here: https://unsw.sharepoint.com/sites/Assessment-Platform-Pilot .


Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them and conduct themselves accordingly.

In particular, students are responsible for observing standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person and on social media; for example, Facebook groups set up to discuss UNSW courses or coursework. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their safety is serious misconduct. It can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.

Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand the above. Ignorance is not accepted as an excuse for plagiarism. In particular, you are responsible for securely storing your assignment files such that they are not accessible by anyone but you by setting proper permissions on your CSE home directory and/or online code repositories. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your work. Plagiarism also covers collusion: working on an individual assessment with other students. If the assignment is individual, do it yourself , or ask your tutor or the forum for help.

UNSW is committed to fostering a learning culture informed by academic integrity. All UNSW staff and students are responsible for adhering to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own. This encompasses both copying works from your fellow students (plagiarism) or asking/paying someone to do the work for you (contract cheating).

[What follows is courtesy of Stuart Prescott in Chem Eng ...]

Artificial intelligence tools such as ChatGPT, CodePilot, CoPilot, and built-in functions within Word are modern tools that are useful in some circumstances. Still, reliance on them is not a path to success at university or in your later career. Reaching for a calculator to add 1+1 is possible but not professionally sustainable for an engineer or scientist (or one might say in our educated society!), and that is why you learnt to do that yourself at primary school. Likewise, in your degree at UNSW, we're teaching you skills that are needed for your professional life, which is a combination of some things that AI could feasibly do for you and lots of things that the AI tools cannot do for you — if we were only teaching you things that AI could do, your degree would be worthless and you wouldn't have a job in 5 years. You can therefore see that from an academic standards perspective, the output from an AI tool will be below the minimum standards expected for a course, even if you were to submit it (which you should not!). Your ability to complete later assessments where AI cannot help you will also be compromised if you've relied upon AI earlier.

It is also worth remembering what these AI tools, such as ChatGPT, are: they are only statistical models about how groups of words frequently appear. These AI-based tools are not smart, they don't know anything other than how words are often grouped, and they most certainly do not understand any of your courses' content. Some consequences of their word statistics and non-scientific basis are:

  • They generate confident-sounding text that is completely wrong from a technical point of view.
  • The text mangles jargon very badly.
  • The output gets causality backwards and so often argues completely the wrong thing.
  • The output will include unit conversions but often get them wrong.
  • The generated text is often generic, bland, lacking in detail, and not helpful.
  • The output is often just a collection of loosely related factual-sounding sentences that don't answer the question that was actually asked.

In summary, the AI tools generate text output that is superficially reasonable, very confident sounding, and very often wrong. We are setting an expectation that our graduates should outperform AI, meaning that it is a tool of limited academic use in your degree.

[Thanks Stuart]

Course Schedule

The following table lists the tentative weekly schedule. Students will be informed of any changes during the lecture and by announcements on the notices page.


Week Lecture Dates Lecture Topics Labs Assessment Tasks
1 13 & 15 Feb Course Logistics
Introduction:
  • What is the Internet?
  • Network edge and core
  • Performance of networks
Introduction:
  • Layering and Encapsulation

Self-Study of Lab
resources and tools
(no submission and no marks)
2 20 & 22 Feb Application Layer:
  • Principles of networked applications
  • The Web & HTTP
  • Email
  • Domain Name Service (DNS)
  • Peer-to-Peer Networks
Lab 1 Lab 1 submission deadline: 10:00 Tue 28 Feb




3 27 Feb & 1 Mar


Application Layer:
  • Content Distribution Networks
  • Socket Programming

Transport Layer:

  • Transport services
Lab 2 Lab 2 submission deadline: 10:00 Tue 7 Mar





4 6 & 8 Mar

Transport Layer:
  • Multiplexing & Demultiplexing
  • UDP
  • Principles of reliable data delivery
  • Pipelined Protocols
Lab 3
Lab 3 submission deadline: 10:00 Tue 14 Mar

Assignment Specs Released (Expected)

5 13 & 15 Mar
Transport Layer:
  • TCP
  • Connection management & flow control
  • Congestion control
  • Fairness
Tutorial 1

6 No lecture No lecture
No Lab No Lab



7 27 & 29 Mar Network Layer, Data Plane:
  • Overview
  • IP
Lab 4
Mid-term Test on 27th Mar during lecture hours

Lab 4 submission deadline: 10:00
Tue 4 Apr
8
3 & 5 Apr
Network Layer, Data Plane:
  • IP Addressing
  • NAT
  • IPv6
Lab 5
Lab 5 submission deadline: 10:00
Tue 11 Apr


9 10 & 12 Apr
NOTE : 10th Apr is a public holiday . A recorded lecture will be available for viewing.
Network Layer, Control Plane:
  • Routing algorithms
  • Link State and Distance Vector
  • Hierarchical routing
  • ICMP
Link Layer:
  • Error detection
Lab 6
Lab 6 submission deadline: 10:00
Tue 18 Apr
10 17 & 19 Apr

Link Layer:
  • Multiple Access Protocols
  • Link-Layer Addressing and ARP
  • Ethernet
  • Switches
Wireless Networks
  • Wireless Characteristics
  • 802.11
  • CSMA/CA
A day in the life of a web request

Network Security
  • Basic Cryptography
  • Message integrity & Digital signatures
  • Authentication
Tutorial 2
Assignment Due:
Exam Period 29 Apr - 12 May
T1 Exams
Final Exam


Resources for Students

Course Textbook:

  • Computer Networking - A Top-Down Approach Featuring the Internet, J. Kurose and K. Ross, Pearson, 8th Edition, 2020 (Seventh edition will suffice for most parts). UNSW Bookshop Link - Print Version , Pearson Link - E-book Version (Use the code BTUNSW for a 5% discount until 2nd April 2023)

Reference Texts:

  • Unix Network 1 - Networking APIs: Sockets and XTI, W. Richard Stevens, Prentice-Hall, Second Edition, 1998.
  • Java Network Programming, E. R. Harold, O'Reilly, Third Edition, 2004.
  • Learning Python, Mark Lutz, O'Reilly, Fifth Edition, 2013.
  • Computer Networks: A Systems Approach, Larry Peterson and Bruce Davie, Morgan Kaufmann, Fifth Edition, 2011.
  • Introduction to Computer Networks and Cybersecurity, John Wu and J. David Irwin, CRC Press, 2013.
  • Computer Networks, Andrew Tanenbaum and David Wetherall, Fifth Edition, Pearson, 2010.

Links to additional reading material will be available on the lecture notes page.

Software:

For the labs, we will be using several Unix-based network utility programs. The purpose of these programs and information on how to use them will be provided in the lab handouts. We will also use a packet sniffing tool called Wireshark, awidely deployed on CSE machines. In addition, we will also use Ns-2, a widely used network simulator for a few labs. Ns-2 is installed on the CSE lab machines. The simulator is written in C++. However, it uses OTcl as its command and configuration interface. In the lab exercises, we will use scripts written in OTcl. We will provide the necessary scripts for the lab exercises. You will be expected to run the scripts, make some changes in the scripts, and certain performance metrics. You will not be required to write C++ code. Detailed resources for all tools will be available on the lab exercises page.

The programming assignment is expected to be developed in C, Java or Python . Students are assumed to have sufficient expertise in one of these programming languages. Links to C, Java and Python network programming resources will be available on the assignment page. Students will work on some simple client-server applications in two lab exercises, which should be a helpful starting point for the assignment.

Course Evaluation and Development

Student feedback on this course and the effectiveness of lectures in this course are obtained via the myExperience survey at the end of each term. Student feedback is taken seriously, and continual improvements are made to the course based partly on this feedback. Students are strongly encouraged to let the lecturer in charge know of any problems as soon as they arise. Suggestions and criticisms will be listened to openly, and every action will be taken to correct any issue or improve the students’ learning experience. The feedback for Term 3, 2022, was generally positive, so I don't anticipate making any major changes.

Special Consideration

You can view the Special Consideration policy at the link here .

UNSW handles special centrally (in the Student Lifecycle division), so all special consideration requests must be submitted via the UNSW Special Consideration website. If your work in this course is affected by unforeseen adverse circumstances, you should apply for Special Consideration. Special consideration requests must be accompanied by documentation on how you have been affected, which Student Lifecycle will verify. Do not email the LiC directly about special consideration. If your request is reasonable and your work has been impacted, then:

  • Assignment: you may be granted an extension.
  • Mid-Term Exam: you may be granted an opportunity to take the exam later
  • Final Exam: you may be offered a Supplementary Exam

Note the use of the word "may". None of the above is guaranteed. It depends on you making a convincing case that the circumstances have impacted your ability to work. UNSW expects you to be available to sit Supplementary Exams if required. If you are awarded a supplementary exam and do not attend, your exam mark will be zero.

If you are registered with Disability Services, please forward your documentation to your Lecturer within the first two weeks of the term.

Contacting LiC and Course Admin: No personal emails, please. Please use cs3331@cse.unsw.edu.au.

9 months ago , last modified 8 months ago .

Resource created Tuesday 17 January 2023, 01:58:44 PM, last modified Wednesday 17 May 2023, 01:28:06 PM.


Back to top

COMP3331/COMP9331 23T1 (Computer Networks and Applications) is powered by WebCMS3
CRICOS Provider No. 00098G