syllabus
1. Information regarding the programme
1.1 Higher education institution 	Babeş Bolyai University	
1.2 Faculty	Faculty of Mathematics and Computer Science	
1.3 Department	Department of Computer Science	
1.4 Field of study	Computer Science	
1.5 Study cycle	Bachelor	
1.6 Study programme / Qualification 	Information Engineering	

2. Information regarding the discipline 
2.1 Name of the discipline	Computer Networks	
2.2 Course coordinator 	PhD.  Lecturer Adrian Sergiu DARABANT	
2.3 Seminar coordinator	PhD.  Lecturer Adrian Sergiu DARABANT	
2.4. Year of study	2	2.5 Semester	4	2.6. Type of evaluation	E	2.7 Type of discipline	Compulsory	

3. Total estimated time (hours/semester of didactic activities) 
3.1 Hours per week 	2	Of which: 3.2 course	2	3.3 seminar/laboratory	2	
3.4 Total hours in the curriculum 	56	Of which: 3.5 course	28	3.6 seminar/laboratory	28	
Time allotment:	hours	
Learning using manual, course support, bibliography, course notes	15	
Additional documentation (in libraries, on electronic platforms, field documentation) 	15	
Preparation for seminars/labs, homework, papers, portfolios and essays	15	
Tutorship	9	
Evaluations	15	
Other activities: ..................	-	
3.7 Total individual study hours 	69	
3.8 Total hours per semester	125	
3.9 Number of ECTS credits	5	

4. Prerequisites (if necessary)
4.1. curriculum	•	Operating Systems, Computer System Architecture, Data Structures and Algorithms	
4.2. competencies	•	Average to good knowledge of C/C++ programming, Automata Theory, Graph Theory;	

5. Conditions (if necessary)
5.1. for the course	•		
5.2.  for the seminar /lab activities	•	Laboratory with Internet connected computers; Linux and Windows servers and desktops, routers, switches, wireless access points;	

6. Specific competencies acquired 
Professional competencies	•	Good programming skills in high-level languages
•	Ability to design and administer computer networks
•	Ability to install, configure and maintain a networked server.
•	Acquire the capability to design communication protocols.
•	Learning the reference architecture for computer networks
•	Learning the fundamental principles of Internet.	
Transversal competencies	•	Ability to permanently learn, understand and apply the most recent scientific results in the field of Computer Science.
•	Ability to work independently and/or in a team in order to solve problems in defined professional contexts
•	Ability to use specific scientific terms and communicate in English	

7. Objectives of the discipline (outcome of the acquired competencies)
7.1 General objective of the discipline
	•	Be able to understand the fundamental principles and inner workings of a computer network and of Internet	
7.2 Specific objective of the discipline
	•	Learning the underlying concepts and principles of modern computer networks  with emphasis on protocols, architectures, and  implementation issues;
•	Learning to program networking applications using TCP/IP
•	Learning and understand the layered Internet protocols architecture
•	Have all the basis knowledge about TCP/IP – theoretical aspects and programming communicating applications	

8. Content
8.1 Course	Teaching methods	Remarks	
1.	Computer Networks Introduction. Definition. Examples. Network Topologies.	Exposure: description, explanation, 		
2.	The socket programming API. Network programming using TCP and UDP.	Exposure: description, explanation, examples, 		
3.	Protocols: definition. Protocol layers. The OSI reference model. The TCP/IP layered model.	Exposure: description, explanation, examples, debate, dialogue		
4.	The functions and services of the IP layer. Structure of an IP datagram. IP addressing (classfull). Datagram check summing. The ARP protocol.	Exposure: description, explanation, examples, discussion of case studies		
5.	The concept of Subnetworks and Supernetworks. CIDR. Network masks.	Exposure: description, explanation, examples, proofs		
6.	The UDP protocol and services. The structure of an UDP datagram UDP ports and processes. 	Exposure: description, explanation, examples, 		
7.	The TCP protocol. Structure of a TCP segment. Principles of TCP data transmission.	Exposure: description, explanation, discussion of case studies		
8.	The TCP Sliding Window mechanism. Flow Control. Congestion avoidance.	Exposure: description, explanation, examples		
9.	Broadcast and multicast communication. The ICMP protocol. Error and network state signaling.	Exposure: description, explanation, examples, discussion of case studies		
10.	The application layer. HTTP, SMTP, FTP	Exposure: description, explanation, examples, debate		
11.	The Internet Domain Name System. The DNS protocol.	Exposure: description, explanation, examples, discussion of case studies		
12.	Network routing. Distance based and link state based routing algorithms. Routing protocols: RIP, BGP, OSPF. 	Exposure: description, explanation, examples, discussion of case studies		
13.	The physical layer. Transmission media. Characteristics, fiber networks, wireless networks.	Exposure: description, explanation, examples, discussion of case studies		
14.	Error detection and correction.	Exposure: description, examples, discussion of case studies, 		
Bibliography
1.	J. Kurose, K. Ross, Computer Networking: A Top Down Approach, Addison-Wesley, rev2,3,4 2002-2007. 
2.	Douglas E. Comer, Internetworking with TCP/IP 
a.	Vol 1- Principles, Protocols, and Architecture 
b.	Vol 3- Client-Server Programming and Applications 
3.	G.R.Wright, R. Stevens, TCP/IP Illustrated – vol 1,2, Addison Wesley.
4.	Matt Naugle, Illustrated TCP/IP – A Graphic Guide to protocol suite, John Willey & Sons, 1999.
5.	W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API   
6.	Peterson, Larry - Davie, Bruce: Computer Networks: A Systems Approach. Morgan Kaufman, (3rd ed.), 2003.
7.	Stallings, William: Data and Computer Communications. Prentice Hall, (6th ed.), 2000.
8.	Tanenbaum, Andrew S.: Computer Networks. Prentice Hall, (4th ed.), 2003.
	
8.2 Seminar/Laboratory	Teaching methods	Remarks	
1.	TCP programming. The problem is composed of two parts:
a.	A protocol design/definition
b.	Implementation of the defined protocol	Explanation, dialogue, case studies, example, proofs	The seminar is structured as 2 hours classes every second week	
2.	Implementation of the protocol described previously.	Dialogue, debate, case studies		
3.	UDP programming. Use UDP to develop a specified problem. Case studies: large datagrams, fragmentation, peering sendto with recvfrom.	Dialogue, debate, case studies, examples, proofs		
4.	Network transmission debugging – tcpdump	Dialogue, debate, case studies, examples		
5.	UDP broadcast implementation of a distributed date/time synchronization protocol in a computer network	Dialogue, debate, case studies, examples		
6.	Network transmission debugging – using Wireshark	Dialogue, debate, case studies, examples		
7.	Simulation of the TCP protocol using unreliable UDP.	Dialogue, debate, case studies, examples		
8.	Simulation of network loss and transmission unpredictability for the TCP implementation using UDP. Analyze the possible flaws of the proposed protocol.	Explanation, dialogue, case studies		
9.	Network testing: ping, traceroute, route	Explanation, dialogue, case studies, examples		
10.	Implementation of a multicast UDP application respecting a given protocol.	Explanation, dialogue, case studies, examples		
11.	Wireless networks: configuration and security.	Testing data, discussion, evaluation		
12.	Network equipment: switches, routers, cabling. Configuration	Explanation, dialogue, case studies		
13.	Implementation of a reduced functionality DNS resolver.	 discussion, evaluation		
14.	Network security, intrusion, protection mechanisms. Typical attack scenarios.	Explanation, dialogue, case studies		
Bibliography
1.	Douglas E. Comer, Internetworking with TCP/IP - Vol 3- Client-Server Programming and Applications
2.	W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API   
3.	Cisco Networking Academy Classes, http://cisco.netacad.net	

9. Corroborating the content of the discipline with the expectations of the epistemic community, professional associations and representative employers within the field of the program

•	The course respects the IEEE and ACM Curriculla Recommendations for Computer Science studies;
•	The course exists in the studying program of all major universities in Romania and abroad;
•	The content of the course covers the most important aspects necessary for a network engineer/architect in a network specialized company.	

10. Evaluation
Type of activity	10.1 Evaluation criteria	10.2 Evaluation methods	10.3 Share in the grade (%)	
10.4 Course	- know the basic principle of the domain;
- apply the course concepts
- problem solving	Written exam
	50%	
10.5 Seminar/lab activities	- be able to implement course concepts and algorithms
-For each week of delayed lab presentation the student loses 1 point from the lab grade 	-Continuous evaluation of laboratory works	50%	
10.6 Minimum performance standards	
•	At least grade 5 (from a scale of 1 to 10) at both written exam and laboratory work.	
Date		Signature of course coordinator 		Signature of seminar coordinator
..................	Lect PhD. Adrian Sergiu DARABANT	Lect.PhD. Adrian Sergiu DARABANT
Date of approval  					  Signature of the head of department	
...........................................					...........…............................