Computer Networks
Datornätverk
About the Syllabus
Grading scale
Course modules
Position
The course can be part of the following programme:
- Computer Science, Master's Programme (N2COS)
The course is a also a single-subject course at Gothenburg University.
Main field of study with advanced study
Entry requirements
The requirement for the course is to have a Bachelor's degree within the subject Computer Science or equivalent. The student should also have successfully completed the courses listed below, either as part of the Bachelor's degree or as single subject courses.
- 7.5 hec in discrete mathematics (DIT984 or equivalent)
- 7.5 hec in finite automata theory and formal language (DIT323 or equivalent)
- 7.5 hec in imperative or object oriented programming (DIT013 or equivalent)
- 7.5 hec in data structures (DIT962 or equivalent)
- 7.5 hec in algorithms (DIT093 or equivalent)
- 7.5 hec in computer communication (DIT423 or equivalent) or operating systems (DIT401 or equivalent)
Applicants must prove knowledge of English: English 6/English level 2 or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.
Content
This course focuses on the algorithmic design of network protocols and covers a range of sub-specialties including: computer communication network concepts, programming using BSD socket API, and distributed fault-tolerance algorithms with a very strong
emphasis on self-stabilization. The aim of this course is to learn to design and analyse algorithms for network protocols and to gain knowledge in existing communication networks, including supporting systems and protocols, fundamental tasks and methods in data communication networks. Mastery of computer networks involves both theory and practice in the design, implementation and use of network protocols and services.
This course offers learning experiences that involve hands-on experimentation and analysis as they reinforce student understanding of concepts and their application to real-world problems. Several laboratory experiments are given and involve API programming for fault-tolerance network systems, and Internet interconnections and
services from a practical perspective, and design and analysis of protocols with a strong emphasis on self-stabilizing algorithms.
This course provides the students with the analytical background needed for understanding fundamental issues in the design of distributed fault tolerance algorithms for computer network protocols. The course has a very strong emphasis on transient faults and how self-stabilizing algorithms can allow automatic recovery after their occurrence.
Objectives
On successful completion of the course the student will be able to:
Knowledge and understanding
- demonstrate a broad knowledge of Internet technology and domain name systems,
- demonstrate a considerable degree of technical knowhow on the Internet new generation IPv6,
- describe and analyse architecture, core protocols, global routing, services as well as their limitations of networks such as the Internet,
- discuss and analyse contemporary networking problems, such as TCP connections, contention, performance and flow control,
Competence and skills
- define systematically and analyse a computer network in terms of communication graphs and as a distributed system. This specifically refers to problems such as token circulation, spanning tree construction, leader election, initialization of data link algorithms, topology update, clock synchronization, and more,
- use a number of proof techniques, such as re-computation of floating output, fair composition, variant functions, and convergence stairs, as well as demonstrate the correctness of a number of fault-containment or super-stabilization algorithms,
- develop small scale network applications using fundamental networking techniques,
- design and develop your own network-oriented program and then test and demonstrate it in the lab,
- demonstrate and write lab reports on protocol correctness,
- explain and demonstrate the correctness of the studied (self-stabilizing) protocols as well as clearly describe the network algorithms that you design yourself,
- demonstrate software developments for advanced fault-tolerant client-server and peer-to-peer architectures,
- design distributed (self-stabilizing) algorithms for computer networks and show why they work,
Judgement and approach
- describe, design and analyse existing and new algorithms for network protocols with a very strong emphasis on self-stabilizing algorithms for computer networks,
- critically analyse the effect of failures, such as transient faults, message omission, and topology changes, on the system and how can such failures propagate and effect computer networks.
Sustainability labelling
Form of teaching
Lectures, exercises, home assignments, and laboratory assignments.
Language of instruction: English
Examination formats
The course is examined by an individual written examination carried out in an examination hall at the end of the course, and written assignments which are normally carried out in pairs.
If a student who has been failed twice for the same examination element wishes to change examiner before the next examination session, such a request is to be granted unless there are specific reasons to the contrary (Chapter 6 Section 22 HF).
If a student has received a certificate of disability study support from the University of Gothenburg with a recommendation of adapted examination and/or adapted forms of assessment, an examiner may decide, if this is consistent with the course’s intended learning outcomes and provided that no unreasonable resources would be needed, to grant the student adapted examination and/or adapted forms of assessment.
If a course has been discontinued or undergone major changes, the student must be offered at least two examination sessions in addition to ordinary examination sessions. These sessions are to be spread over a period of at least one year but no more than two years after the course has been discontinued/changed. The same applies to placement and internship (VFU) except that this is restricted to only one further examination session.
If a student has been notified that they fulfil the requirements for being a student at Riksidrottsuniversitetet (RIU student), to combine elite sports activities with studies, the examiner is entitled to decide on adaptation of examinations if this is done in accordance with the Local rules regarding RIU students at the University of Gothenburg.
Grades
Sub-courses
- Written examination, 6 credits
Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U) - Assignments, 1.5 credits
Grading scale: Pass (G) and Fail (U)
The grading scale comprises: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U).
In order to get one of the grades 5, 4 or 3 one has to get the grade G on the sub-course Assignments, and a passing grade (5, 4 or 3) on the sub-course Written hall examination. In that case the grade on the course is the grade on the sub-course Written hall examination. In other cases the grade on the course is U (fail).
Course evaluation
The course is evaluated through meetings both during and after the course between teachers and student representatives. Further, an anonymous questionnaire is used to ensure written information. The outcome of the evaluations serves to improve the course by indication which parts could be added, improved, changed or removed.
Other regulations
This is a work intensive course with lots of homework, labs and reading to do before and after each lectures.
The course is a joint course together with Chalmers.
The course replaces the course DIT670, 7.5 credits. The course cannot be included in a degree which contains DIT670. Neither can the course be included in a degree which is based on another degree in which the course DIT670 is included.