CS2281: Programming in UNIX Semester 3, 2004/05 CS2281: Programming in UNIX – p.1/13 Syllabus • C Programming • UNIX Shell Programming • UNIX Systems Call • Programming Tools CS2281: Programming in UNIX – p.2/13 Goals • Get familiar with UNIX programming environment • Learn the philosophy of UNIX CS2281: Programming in UNIX – p.3/13 Teaching Style • Student centered learning • No lecture notes • Lots of demo - source code and video recording will be distributed. CS2281: Programming in UNIX – p.4/13 Learning Style • Nothing to remember (open book tests and exams). • Learning by doing and refering to references. • When in doubt, write small program to test. • Get your hands dirty! CS2281: Programming in UNIX – p.5/13 Time Table • Lecture: Mon and Thu, 10am 12noon, SR1 • Lab: Fri, 10am - 12noon, PL3 • Office Hours: Tue, 10am - 12noon, SOC1, 04-20 CS2281: Programming in UNIX – p.6/13 Continuous Assessments • 50%: Programming Assignments • 30%: Two Practical Tests • 20%: Final Exam CS2281: Programming in UNIX – p.7/13 Plagiarism Warning • I practice zero-tolerance policy for plagiarism. • School’s policy: zero mark for assignment and final grade lowered by one grade point. CS2281: Programming in UNIX – p.8/13 Assessment Principles • Ability to write and debug programs in UNIX • Understand the basic concepts of programming in UNIX • Will NOT test on obfuscated language syntax such as char (*(*x())[])() or "weird" statement such as i = i++. CS2281: Programming in UNIX – p.9/13 Working Environment • Official programming environment: sunfire • In class demonstration using Intel machine and Linux. CS2281: Programming in UNIX – p.10/13 Website • Not using IVLE. • Use newsgroup SoC.acad.level2 on bbs instead of IVLE forum for discussion. • Main website will be http://www.comp.nus.edu.sg/˜cs2281 CS2281: Programming in UNIX – p.11/13 Background • Java • Basic knowledge of using UNIX (ls, cd, mkdir etc.) • Knowledge of a programmer’s editor, vim or emacs recommended. No pico please. CS2281: Programming in UNIX – p.12/13 C and UNIX • Invented together at Bell Labs. • C: low-level language for implementing UNIX • UNIX: a simple and elegent OS • See "Bell Lab’s History of UNIX". CS2281: Programming in UNIX – p.13/13