CSE3233-Network Programming
Posted by cinsdikici on March 5, 2022
Course Unit Title: Network Programming
Course Unit Code: CSE3233
Course Time : Wednesday [13:30-15:30]/[19:15-21:00]
Course Room: C208
Level of Course: BSc
Course Platforms: CengNetPrg Group // NetPrgClass @Google Classroom
Theoretical: 3
Semester: Spring
Name of Lecturer: Asst. Prof. Dr.Muhammed Cinsdikici
Mode of Delivery: Face-To-Face
Language: Turkish
Assistant: Ahmet Cahit Yaşa
Prerequisities : Algorithms, C/C++ Coding, Data Structures
Objectives of the Course:
Objectives of this course includes providing students with the understanding of current trends in communication protocols and providing them information about socket programming, inter-process communications and network research.
Textbooks:
1. InterProcess Communications in LINUX, John Shapley Gray, Prentice Hall, ISBN-13: 978-0130460424, 2003
2. C# Network Programming, Richard Blum, Sybex, ISBN: 978-0-7821-4176-4, 2002
3. Java Network Programming, Merlin & Conrad Hughes et.all, Manning, ISBN-13: 978-0138412067, 1997
Learning Outcomes
- Ability to understand OSI layers and protocols.
- Ability to develop applications using TCP / ODP protocols
- Ability to develop multithreaded applications, ensure synchronization in shared memory environments.
- Ability to design complex network applications and present it.
Course Contents:
Linux Processes and Environment, Primitive Communications, Pipes, Process Message Queues, Semaphores, Shared Memory, Remote Procedure Call, Network Layer Programming [Sockets, TCP/UDP Programming], Application Programming Samples [ICMP, SNMP, SMTP, HTTP]
Grading:
%30 HomeWorks + %20 MidTerm + %20 Final Exam + %30 Final Project
Late submission of the homeworks and projects are not going to be accepted. The assessment principals are;
On time submission are scored as max.100/100
One week late submissions are scored as max. 80/100
Two weeks late submissions are scored as max. 60/100
Others are scored as 0.
WEEK | NAME | SUBJECTS | ||
Slides | Laboratory | Suplementary Materials | ||
1 | Introduction | Introduction | YoLinux Fork / Exec Page | |
2 | Processing Environments | Processing Env | Research Assignment | |
3 | Process Life Cycle | Process Life Cycle | Process Creation Lab on Linux OS | ProcessesShells / SignalsProcesses and Threads |
4 | Primitive Communications | Primitive Communications | Java Thread Library Coding | |
5 | Pipes | Pipes – Sample Chapter | Semaphore implementationCode assignment aboutJava threads | |
6 | Message Queues | Research for Queue Systems | Customer Queueing SystemSimulating QueueSabarimala Virtual Queue System 🙂 | |
7 | Midterm | |||
8 | Semaphores | Semaphore | Deadlock avoidance implementation | OS DeadlockBankers AlgorithmDeadlock in traffic |
9 | Shared Memory | Memory Management | LitterateurResearch | How CPU Works?Fetch/Decode/ExecutePage Tables |
10 | Remote Procedure Call / Remote Method Invocation | Book Reading | LRU Approaximation: Second Chance (!)Clock & Second Chance Algorithm s Presentation | |
11 | Sockets | Research on Disk Drives | ||
12 | TCP Programming | Linux/Win8 File Management System Information | ||
13 | UDP Programming | FAT32/NTFS Info | UDP Protocol Details | |
14 | Case Studies | |||
15 | Final Exam |
Leave a Reply