Course Code | COMP3331/COMP9331 |
Course Title | Computer Networks and Applications |
Units of Credit | 6 |
Course Website | http://cse.unsw.edu.au/~cs3331 |
Handbook Entry | http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP3331.html |
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) security threats and common defensive techniques, and (6) special purpose networks such as content delivery networks, peer-to-peer networks and wireless networks. This is a combined undergraduate and postgraduate course. The written exams for the postgraduate students will contain some questions, which are different from the undergraduate exam, and will more challenging.
There will be 3 hours of lectures every week: (i) 2-hour lecture on Wednesday 16:00 - 18:00 in Law Th G04 and (ii) 1-hour lecture on Thursday 13:00 - 14:00. There will be 2-hour labs every week. The detailed lab schedule will be posted on lab exercises page. The detailed course timetable is available here .
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).
After completing this course, students will:
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, assignments |
scholarship: capable of independent and collaborative enquiry | labs, assignments, |
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, assignments, exams, sample problems |
scholarship: capable of effective communication | labs, assignments, lectures |
scholarship: information literate | all aspects of the course |
scholarship: digitally literate | all aspects of the course |
leadership: collaborative team workers | labs |
professionalism: capable of independent, self-directed practice | all aspects of the coures |
professionalism: capable of lifelong learning | all aspects of the course |
professionalism: capable of operating within an agreed Code of Practice | labs, assignments |
global citizens: capable of applying their discipline in local, national and international contexts | all aspects of the course |
global citizens: culturally aware and capable of respecting diversity and acting in socially just/responsible ways | labs, course forums |
Before commencing this course, students should:
These skills are assumed to have been acquired in the courses: COMP1921 or COMP1927 or MTRN3530 (for undergraduates) and COMP9024 (for postgraduates)
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.
There will be four assessment components as listed below:
Component | Weight |
---|---|
Lab Exercises | 15% |
Programming Assignments | 25% |
Mid-semester Exam | 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 15) assign = marks for the two programming assignments (scaled to 25) midExam = mark for the mid-semester exam (scaled to 20) finalExam = mark for the final exam (scaled to 40) mark = lab + assign + midExam + finalExam grade = HD|DN|CR|PS if mark >= 50 && finalExam >= 16 = FL if mark < 50 || finalExam < 16
Lab Exercises: Selected lab exercises will be marked. Students are expected to show their work to their tutor at the end of the lab session for marking. Further information will be provided on the lab exercises page. The lab exercises will cumulatively be worth 15% of the final mark.
Programming Assignments: There will be two programming assignments which will together contribute to 25% of the final mark. Assignment MUST be individual submission. The details and specification will be announced via the course page and in lectures. Students will have 4-5 weeks to finish this assignment. Students can either use Python, C or JAVA as the programming language for the first assignment. The second assignment may require working with Mininet and programming with Python. Please note that this course does NOT involve teaching any programming language. We will only go over the basics of socket programming. Students are expected to be proficient in one of the above programming languages. Late submissions will be penalised according to the rules specified in the assignment specifications.
Note: Exceptions will be made for students who lack programming background and are not enrolled in a CSE/EE/IT degree program ( e.g : Mechatronics and other branches of engineering). These students may be given an option of a non-programming assignment (to be confirmed).
Mid-semester Exam: The exam will be held in Week 6 during regular lecture hours. Details will be announced in due time. The exam is worth 20% of the final mark.
Final Exam: The final exam will be closed book and will contain problems similar to tutorial problems. Format and details will be announced. The exam will take place during the university exam period. The exam is worth 40% of the final mark.
Note: The postgraduate students will have a few slightly challenging questions as compared to the undergraduates, in both the examinations. Approximately 15-20% of the questions will be different.
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.
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 | 2 & 3 March |
Course Logistics
Introduction:
|
No Lab | |
2 | 9 & 10 March |
Introduction:
|
Lab 1 | |
3 | 16 & 17 March |
Application Layer:
|
Programming Practice | Assignment 1 Released |
4 | 23 & 24 March |
Transport Layer:
|
Lab 2 | |
|
Mid-semester Break | |||
5 | 6 & 7 April |
Transport Layer:
|
Mininet Introduction |
|
6 | 13 & 14 April |
Network Layer:
|
No Lab | Mid-semester Exam |
7 | 20 & 21 April |
Network Layer:
|
Lab 3 |
Assignment 1 Due
Assignment 2 Released |
8 | 27 & 28 April |
Link Layer:
|
Assignment 1 Demo & Marking | |
9 | 4 & 5 May |
Wireless and Mobile Networks
|
Lab 4 | |
10 | 11 & 12 May |
Network Security
|
Lab 5 | |
11 | 18 & 19 May |
Network Security
A window into the future
|
Lab 6 |
|
12 | 25 & 26 May |
Problem Solving and Revision
|
|
Assignment 2 Due |
13 | 1 & 2 June | Remedial Lecture if necessary | Assignment 2 Demo & Marking | |
Exam
Period |
10 June -
27 June |
|
Final Exam |
Course Textbook:
Reference Texts:
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. A detailed manual for Wireshark is available under the Lab exercises link on the course webpage. Lastly, we will use a network emulator called Mininet to create complex network topologies and test protocol behaviour and analyse network performance. Students will be required to write some basic Python code for the Mininet based labs. Links to various resources for installing and running Mininet will be provided. We will also have a preparatory lab o getting acquainted with Mininet.
Programming assignments are 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 and Java will be available under the assignments link of the course webpage. Sample code demonstrating a simple client/server application will also be supplied as a starting point for students.
This course is evaluated each session using the CATEI system.
In the previous offering of this courses, students noted that the labs were dated and not very challenging. Based on their comments, we have revised all lab exercises. The new labs are more instructional and closely linked with the topics covered in the lectures. Moreover, in order to impart a more hands-on experience, we will be using a network emulator called Mininet to simulate large network topologies and observe protocol behaviour and evaluate network performance using these topologies.
You can view the CSE Supplementary exam/Special consideration policy at the following link: https://www.cse.unsw.edu.au/about-us/organisational-structure/student-services/policies/yellow-form/index.html#dates
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
Resource created Monday 15 February 2016, 06:28:52 PM, last modified Monday 29 February 2016, 11:45:48 AM.