New York City College of Technology Computer Systems Technology Department Course Description CS703 - Network programming with C and UNIX (4 Hours, 3 Credits) Instructor: Dr. Hong Li Office: N1000 Email: hli@citytech.cuny.edu Telephone: 718-260-5546 Office Hours: Tues. 12 – 1pm Wed. 3 – 4pm Course Aims/Description: This course presents a thorough treatment of Network programming with UNIX/LINUX in C. Topics cover networking basics as applies to the UNIX operating systems and network file systems. It will teach students the fundamentals of UNIX/LINUX operating system and fundamental of Socket programming using C language. A hands-on programming experience using compilers that run on UNIX based operating systems. Students will be taught the skills to write programs using a UNIX-based C programming environment. In addition, students will be introduced to the fundamentals of network programming. All concepts will be demonstrated through laboratory assignments. Course Objectives: Introduce students the Unix/Linux operating system Teach students the file system of Unix and basic system commands Introduce fundamental of TCP/IP Protocol Teach students model of client and server programming Teach students to build the connection-oriented client/server applications Teach students to build the connectionless client/server applications Introduce the concept of Network Security Programming Prerequisites: CS603 Object-Oriented Programming with grade C or better Required Materials: Text: Bruce Molay, Understanding Unix/Linux Programming – A Guide to Theory and Practice, Prentice Hall 1 Academic Integrity Policy - The instructor of the course has the authority to give a grade of F if the student submits the work of another person in a manner that represents his/her work, or knowingly permits one’s work to be submitted by another person without the instructor’s permission. All class projects must be on your own floppy disk. For further information see Student Handbook. Attendance Policy: You are permitted to be absent from class a maximum of three class sessions. This is in accordance with college policy that sets the maximum number of permissible absences at 10% of the number of class meetings scheduled for the semester. Grading Policy (Subject to change): Assignment: Midterm Exam: Quizes: Final Exam: 30% 25% 15% 30% Course Outline: Topic 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Introduction to Linux operating system Linux commands and editor Linux File system Introduction to Network communications TCP/IP protocol stack and IP addressing Basic Socket Concepts Socket type and protocol Connectionless Protocol Exam and Connection-oriented Protocol for client Connection-Oriented Protocol for server Using standard I/O on socket Concurrent Client Server Broadcasting with UDP Network Security Programming Review and Final 2 ASSESSMENT CRITERIA For the successful completion of this course a Evaluation methods and criteria student should be able to: 1. work with the Unix/Linux operating 1. Students will demonstrate comprehension of system Unix/Linux operating system throughout the course in class and in laboratory assignments 2. Understand the file system of Unix and 2. Students will demonstrate comprehension of master the basic system commands Unix/Linux file system and basic commands throughout the course in class and in laboratory assignments 3. Understand the fundamental of TCP/IP 3. Students will demonstrate comprehension of Protocol TCP/IP protocol on examinations 4. Understand the model of Client/Server programming 5. To develop the connection-oriented client/server applications 6. To develop the connectionless client/server applications 7. Understand the concept of Network Security Programming 4. Students will demonstrate comprehension of Client/Server model on examinations 5. Students will demonstrate comprehension of TCP/IP protocol on examinations and individual or team project assignments 6. Students will demonstrate comprehension of TCP/IP protocol on examinations and individual or team project assignments 7. Students will demonstrate comprehension of TCP/IP protocol on examinations and project assignments 3