DIT671
DIT671
ENGINEERING
Confirmation
This course syllabus was confirmed by Department of Computer Science and
Engineering on 2021-11-15 to be valid from 2022-08-29, autumn semester of 2022.
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 (DIT980 or equivalent),
• 7.5 hec in finite automata theory and formal language (DIT322 or equivalent),
• 7.5 hec in imperative or object oriented programming (DIT012, DIT952, or
equivalent),
• 7.5 hec in data structures (DIT961 or equivalent),
2/ 4
• 7.5 hec in algorithms (DIT602 or equivalent), and
• 7.5 hec in computer communication (DIT423 or equivalent) or operating systems
(DIT401 or equivalent).
Applicants must prove knowledge of English: English 6/English B or the equivalent level
of an internationally recognized test, for example TOEFL, IELTS.
Learning outcomes
On successful completion of the course the student will be able to:
Course 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.
Sub-courses
1. Written examination (Skriftlig tentamen), 6 credits
Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)
2. Assignments (Inlämningsuppgifter), 1.5 credits
Grading scale: Pass (G) and Fail (U)
Form of teaching
Lectures, exercises, home assignments, and laboratory assignments.
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 indicating which parts could be added, improved, changed or removed.
Additional information
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.
Course literature to be announced the latest 8 weeks prior to the start of the course.
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.