14:332:494 Network-Centric Programming

Spring 2007 – Marco Gruteser

Description:  This is an undergraduate course in system and network programming intended to create a foundation for professional practice or for research in computer systems. Students can co-register this class with the operating systems class or take it during their senior year. The class is implementation- and project-oriented and uses the Linux operating system as a basis. There is a special emphasis on constructing networked applications, and understanding the Linux kernel's network stack.

Times:  Class will meet T6Th6 (5:00 - 6:20pm) ,  in SEC 202 

Index:  55003 
 

Class moodle


How to reach me?
 

Instructor: Marco Gruteser

Office: CoRE 505

(Current) Office hours: Thu 4:00 – 5:00pm 

Email: gruteser (at) winlab (dot) rutgers (dot) edu


Prerequisites:  Programming Methodology I & II and good C/C++ programming skills.   

 

Tentative Topics:

Linux development environment, coding style
Data and event-driven program models
Linux system calls
Memory Allocation and Garbage Collection
Socket Network Programming
Network Server Design
Multi-threaded programs and synchronization
Profiling and Performance Analysis
Secure Programming
Linux Kernel Modules and Device Drivers
Scripting Languages

Text:  Unix Network Programming, Vol. 1: The Sockets Networking API

Supplementary Texts:  Advanced Programming in the UNIX(R) Environment
                                       
http://www.advancedlinuxprogramming.com/


Grading: 
Based on implementation homeworks, exams, and participation. Details TBD.