Study-Unit Description

Study-Unit Description


CODE CIS3401

 
TITLE Networking Technologies

 
UM LEVEL 03 - Years 2, 3, 4 in Modular Undergraduate Course

 
MQF LEVEL 6

 
ECTS CREDITS 5

 
DEPARTMENT Computer Information Systems

 
DESCRIPTION Network Programming involves writing programs that communicate, via some network protocol such as TCP-IP, with other programs across a computer network.

There are many issues that arise when writing network programming code which do not appear when doing single program applications. This study unit will extend the students’ knowledge and practice in the analysis and design of computer networks by focusing on computer network programming. In addition, some advanced network topics such as including network security and multimedia computer networks are introduced. Particular emphasis will be put on Sockets programming, which is a way of connecting two nodes on a network to communicate with each other. One socket(node) listens on a particular port at an IP, while other socket reaches out to the other to form a connection. Server forms the listener socket while client reaches out to the server. This will require thread pooling which will be covered in class. The Java programming language, which is extensively used in business applications, will be used throughout the study-unit.

To be able to complete this unit, a student should have both sufficient knowledge about computer networks, especially the TCP/IP protocol, and good programming skills in Java or C#.
This second part of this study unit course teaches students the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. Students will be introduced to basic concurrency constructs in Java such as threads, thread pools, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, live-lock, starvation, linearizability).

Study-Unit Aims:

aim of this study-unit is for students to be introduced to the main principles, methods and techniques used for network, concurrent, and distributed programming involved in modern software development. A secondary aim is for students to be exposed to the programming techniques that are used to implement the concepts and ideas introduced in the first part of the course. A number of tutorials and workshops will be scheduled for this purpose.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:

- describe software defined networks and virtualization;
- define and support quality of service and user needs;
- describe modern network architecture involving clouds, fog and the Internet of Things;
- describe transport layer issues like packets, ports and error detection;
- explain how network routing operates;
- analyse principles of Interprocess communication and network programming using sockets and messages;
- explain practical types of network services such as DNS, ports and sockets;
- explain the influence of server loads on Social networks such as Facebook, Instagram and YouTube, the security and issues involved in maintaining such networks;
-construct and analyse a social networking graph from network data;
-analyse security issues involved in networking, including wireless/cellular networks;
-explain architectures for secure networks such as VPNs, secure DNS, secure channels;
-identify the appropriate defence mechanisms and their limitations given a network threat;
-list the differences and relations between names and addresses in a network, using URI’s, IP addresses.

2. Skills:

By the end of the study-unit the student will be able to:

- compare and contrast software defined networking and network function virtualization;
- apply practical network and data transmission solutions to different scenarios including security aspects;
- choose the correct routing solution and update routing tables;
- apply Interprocess Communication solutions;
- use social networks and mobile networks from a practical perspective;
- determine who the key entities in a social network are and analyse social networks.

Main Text/s and any supplementary readings:

Main Texts:

- Principle of Concurrent and Distributed Programming - Ben-Ari Addison Wesley ISBN-13: 978-0321312839.
- Java Concurrency in Practice - Brian Goetz, Doug Lea et al Addison Wesley ISBN-13: 978-0321349606.
- Java Network Programming Elliotte Rusty Harold O'Reilly ISBN-13: 978-1449357672.

 
STUDY-UNIT TYPE Lecture, Independent Study and Practical

 
METHOD OF ASSESSMENT
Assessment Component/s Assessment Due Sept. Asst Session Weighting
Practical SEM2 No 15%
Examination (2 Hours) SEM2 Yes 85%

 
LECTURER/S

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2024/5. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit