COURSE INFORMATION
Course Title: NETWORK PROGRAMMING
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 461 B 99 3 2 0 4 7.5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Julian Hoxha
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: NA
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Elective
Classroom and Meeting Time:
Course Description: Introduction to networking and Internet protocols via programming and hands-on labs. TCP/IP protocol architecture; user datagram protocol (UDP); multicasting; transmission control protocol (TCP); standard Internet services, and protocol usage by common Internet applications.
Course Objectives: Covers application layer protocol and how applications use the transport layer; principles and practice of network programming; the client-server model; concurrent processing; introduction to sockets and related functions client and server software design with examples; principles, issues and challenges in e-mail and web application protocols; security protocols; and network life system concepts. Exposes students to UNIX/Linux systems and network programming with an emphasis on practical programming problems and experience. Help students prepare for future programming careers by exposing them to Python. Knowledge of concepts related to networking, low level (sockets based) network programming, as well as a variety of web programming concepts. Strong programming skills, specifically in the development of sockets based network programs. Introduce students to concurrent programming models that are used for building scalable servers, including an emphasis on synchronization of threads and processes.
COURSE OUTLINE
Week Topics
1 Introduction to networking programming.
2 Introduction to Python.
3 Installing python,Scope and uses of python, Accessing python interpreter,importing modules and getting helps, Basic data types: number, string, list, tuple, dictionary and sets. Python input and output.
4 Decision making and looping in Python(if, elif, else, while, for). Functions, class and object, Exception handling, Files and Directories; reading and writing text files, creating and removing directories.
5 Internet architecture, application programming interface (API), Network addressing, Standard ports, UNIX Networking Commands.
6 Introduction to sockets.
7 TCP echoserver and TCP echoclient.
8 Python and the web.
9 some popular python modules: smtplib, httplib, poplib.
10 Retrieving web pages with http, Parsing HTML data.
11 XML and XMLRPC.
12 Electronic mail; sending mail.
13 Developing Network server program.
14 Database programming.
Prerequisite(s):
Textbook: Foundations of Python Network Programming, by JOHN GOERZEN. James Kurose and Keith Ross. Computer Networking: A Top-Down Approach Featuring the Internet.
Other References: Beginning Python, by James Payne. Learning Python, by David Ascher.
Laboratory Work:
Computer Usage:
Others: No
COURSE LEARNING OUTCOMES
1 Provide students with a thorough introduction to a variety of important principles in networking, with a strong focus on the Internet.
2 Provide a strong foundation in sending and receiving data between processes in the UNIX and Internet domains.
3 Provide an introduction to writing programs using the socket interface.
4 Provide an introduction to the TCP/IP client-server model of interaction, and to writing networking applications using the client/server technology, and an introduction to writing secure software.
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Master of Science in Computer Engineering (2 years) Program
1 Engineering graduates with sufficient theoretical and practical background for a successful profession and with application skills of fundamental scientific knowledge in the engineering practice. 5
2 Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations 5
3 Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects. 4
4 Engineering graduates with the practice of selecting and using appropriate technical and engineering tools in engineering problems, and ability of effective usage of information science technologies. 4
5 Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. 4
6 Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. 4
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 4
8 Ability for effective oral and official communication skills in foreign language. 4
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 3
10 Engineering graduates with well-structured responsibilities in profession and ethics. 3
11 Engineering graduates who are aware of the importance of safety and healthiness in the project management, workshop environment as well as related legal issues. 3
12 Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity. 2
COURSE EVALUATION METHOD
Method Quantity Percentage
Midterm Exam(s)
1
30
Project
1
30
Final Exam
1
40
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 4 64
Hours for off-the-classroom study (Pre-study, practice) 12 4 48
Mid-terms 1 25 25
Assignments 1 25.5 25.5
Final examination 1 25 25
Other 0
Total Work Load:
187.5
Total Work Load/25(h):
7.5
ECTS Credit of the Course:
7.5