Contents

Course Details

Course Code COMP3331/9331
Course Title Computer Networks and Applications
Units of Credit 6
Lecturer Nadeem Ahmed, Tarek Elwan
Admin Ali Dorri
Classes Lectures: Monday 10-12, Wed 10-12, Friday 13-15 Hours Ainsworth G03
Timetable for all classes.
Consultations Wednesday 1200-1300 Hours
Venue: CSE Consultation Room 508, Level 5
Course Website https://webcms3.cse.unsw.edu.au/COMP3331/19T0
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP3331.html

Course Summary

This course is an introductory course on computer networks, aimed at students with a background in computer science / electrical engineering. 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) special purpose networks such as content delivery networks and wireless networks.

This is a combined undergraduate and postgraduate course.

Course Timetable

There will be 6 hours of lectures every week:

(i) 2-hour lecture on Monday 10:00 - 12:00 and

(ii) 2-hour lecture on Wednesday 10:00 - 12:00 and

(iii) 2-hour lecture on Friday 13:00 - 1500

all in Ainsworth G03 Lecture Theatre.

There will be 2 2-hour labs during 5 weeks (starting in Week 2). The detailed lab schedule will be posted on lab exercises page. 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 on 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, COMP9332-9337).

Student Learning Outcomes

After completing this course, students will:

  • have a working knowledge of computer networks, and will be able to demonstrate their knowledge both 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
  • analyse and evaluate the performance of computer networks
  • be able to capture and analyse network traffic

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

Graduate Capability Acquired in
scholarship: understanding of their discipline in its interdisciplinary context lectures, labs, assignment
scholarship: capable of independent and collaborative enquiry labs, assignment
scholarship: rigorous in their analysis, critique, and reflection lectures, labs, exams, sample problems
scholarship: able to apply their knowledge and skills to solving problems labs, assignment, exams, sample problems
scholarship: capable of effective communication
labs, assignment, lectures, exams
scholarship: information literate
all aspects of the course
scholarship: digitally 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 just/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 programming assignment and labs.

Teaching Rationale

This course takes a top-down approach to teaching computer networks. The rationale behind this is that most students have first-hand experience using applications running over the Internet. This allows them to relate to each layer of protocol stack as we travel down the layers. Once they are committed, they participate in appropriate cognitive aspects such as learning the details with a focus to understand them. Students get mentally prepared to answer questions where 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 deeper understanding of the concepts discussed in the lectures. The sample problems, homework problem set and tutorials will help in the development of problem-solving skills and in preparing 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 theory and concept and demonstrate how they apply in practice
  • Lab Work: reinforce concepts taught in lectures by conducting hands-on experiments and analyse network performance
  • Assignment: allow students to design and implement network protocols and 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-semester Exam 20%
Final Exam 40%

To pass the course a student MUST receive at least 40% marks(scaled) 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 (scaled to 20) 
midExam = mark for the mid-semester exam (out of 20 marks) 
finalExam = mark for the final exam (out of 40 marks) 
mark = lab + assign + midExam + finalExamScaled 
grade = HD|DN|CR|PS if mark >= 50 && finalExamScaled >= 16 
      = FL          if mark < 50 || finalExamScaled < 16

Academic Honesty and Plagiarism

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 on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism.

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 07 January 2019
09 January 2019
11 January 2019
Course Logistics
Introduction:
  • What is the Internet?
  • Network Edge
  • Network Core
  • How do we evaluate the performance of a network?
  • Layering and Encapsulation
Application Layer:
  • Principles of networked applications
  • The Web and HTTP
Lab 1: Tools of the trade
09 & 10th January 2019
2 14 January 2019
16 January 2019
18 January 2019
Application Layer:
  • Email
  • Domain Name Service (DNS)
  • P2P
  • Content Distribution Networks
Transport Layer:
  • Transport services
  • UDP
  • Principles of reliable data delivery
  • TCP
  • Flow control
Lab 2: Socket Programming
14th & 15th January 2019



Lab 3: HTTP and DNS
16th & 17th January 2019
Assignment Released
3 21 January 2019
23 January 2019
25 January 2019
Transport Layer:
  • TCP connection management
  • TCP congestion control
  • Fairness
Network Layer, Data Plane:
  • Network services
  • What's inside a Router?
  • IP
Lab 4: TCP
21 January 2019 & 22 January 2019



Tutorial 1:
23 January 2019 &
24 January 2019






Mid-semester Exam on 25th January 2019

4 30 January 2019
01 February 2019

Network Layer, Data Plane:
  • IP addressing
  • NAT
Network Layer, Control Plane:
  • Routing algorithms
Lab 5: TCP Congestion Control
30 January 2019 &
31 January 2019


5/N1 04 February 2019
06 February 2019






Link Layer:
  • Services, Framing
  • Error detection
  • Medium Access Control
  • Link layer addressing
  • ARP
Wireless Networks:
  • Wireless characteristics
  • 802.11
  • CSMA/CA
A day in the life of a web request
Lab 6: Routing, IP Fragmentation
04 February 2019 &
05 February 2019



Tutorial 2:
06 February 2019 &
07 February 2019
Assignment Submission Due













Final Exam on 9th February 2019

Resources for Students

Course Textbook:

  • Computer Networking - A Top-Down Approach Featuring the Internet, J. Kurose and K. Ross, Pearson, 7th Edition, 2017 (Sixth edition will suffice for most parts).

Reference Texts:

  • Unix Network Programming Volume 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 , which has been widely 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 OTcl scripts for the lab exercises. You will be expected to run the scripts, make some minor changes in the scripts, and analyse certain performance metrics. You will not be required to write C++ code. Detailed resources for all tools used will be made available on the lab exercises page.

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 network programming in C, Java and Python will be available under the assignment link of the course webpage. There would be special tutorials arranged for help in attempting the programming assignments. Details will appear under the assignment link. Sample code demonstrating a simple client/server application will also be supplied as a starting point for students.

Course Evaluation and Development

Course evaluation has been very positive with overall satisfaction ratings over 98% for COMP3331 and over 92% for COMP9331. The course went through a number of changes in the recent years. Students had positive experience about most aspects of this course. A minority of students found the assessment load to be comparatively higher. We plan to review the workload, particularly for labs and assignment.

Supplementary Examination/Re-assessment

Special Consideration: If your work in this course is affected by unforseen adverse circumstances, you should apply for Special Consideration through MyUNSW, including documentation on how your have been affected. If your request is reasonable and your work has clearly been impacted, then

  • for an assignment, you may be granted an extension
  • for Mid Semester Exam, you may be granted an opportunity to take the exam later
  • for the 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 clearly impacted your ability to work.

If you are registered with Disability Services, please forward your documentation to your Lecturer within the first two weeks of semester. You can view the Supplementary exam/Special consideration policy at the link here .

Re-Assessment Policy: Due care is taken to mark all assessment components fairly and appropriately. Therefore, it is unlikely that marks will be changed after a re-assessment. You should contact the LiC to discuss this further. However, students who still feel that the mark they received does not reflect their performance have the right to apply for re-assessment. Students MUST apply for re-assessment via Student Central within 15 days after notification of results of assessment. Please note that re-assessment or re-marking of a piece of work may result in marks to go up or down. Further details can be found from UNSW student guide at following site: https://student.unsw.edu.au/results

Contacting LiC and Course Admin: No personal emails please.

Resource created Thursday 13 December 2018, 05:40:15 PM, last modified Wednesday 19 December 2018, 09:30:56 AM.


Back to top

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