Planned Syllabus # date topic notes 1. Mon, Apr 1 Getting Started; Writing and Compiling C 2. Wed. Apr 3 C Program Basics, Operators, Variables 3. Fri. Apr 5 Operators, Variables, Control Flow Discussion: UNIX Text Editors and Files 4. Mon, Apr 8 Pointers, Command-Line Interface 5. Wed, Apr 10 Command-Line Interface, Environment variables 6. Fri, Apr 12 Pointers, Casting, Storage Discussion: Introduction to UNIX Commands, File System homework 1 due 7. Mon, Apr 15 Structures and Unions 8. Wed, Apr 17 Functions, Scope, Program Stack 9. Fri, Apr 19 Program Stack and Recursion Discussion: UNIX Processes and Shells 10. Mon, Apr 22 Recursion, C Preprocessor 11. Wed, Apr 24 Libraries I: Standard I/O Library 12. Fri, Apr 26 Libraries II: Other library functions Discussion: Remote Access: SSH, Telnet, and All That 13. Mon, Apr 29 UNIX System Calls: File Access homework 2 due 14. Wed, May 1 UNIX System Calls: Other 15. Fri, May 3 C compiler, make Discussion: Review for Midterm 16. Mon, May 6 midterm 17. Wed, May 8 Debugging and gdb 18. Fri, May 10 Debugging and gdb Discussion: Internet, World Wide Web 19. Mon, May 13 Modularity, interfaces, and portability homework 3 due 20. Wed, May 15 Modularity, interfaces, and portability 21. Fri, May 17 Robust Programming Discussion: Configuring the Environment 22. Mon, May 20 Robust Programming 23. Wed, May 22 Robust Programming 24. Fri, May 24 Rapid Prototyping, Shell Programming Discussion: UNIX Tools: awk, sed, and Other Programs Mon, May 27 no class (Memorial Day) homework 4 due 25. Wed, May 29 Rapid Prototyping, Shell Programming 26. Fri, May 31 Program Design: Top-Down Discussion: More UNIX Tools 27. Mon, Jun 3 Program Design: Bottom-Up Design, Toolkit Approach 28. Wed, Jun 5 Program Design 29. Thu, Jun 6 Program Profiling 30. Fri, Jun 7 Conclusion and Review Discussion: Review for Final Mon, Jun 10 final exam 4:00PM to 6:00PM