Outline for Introduction to Unix and C
This is the outline for Summer 2003 course Introduction to Unix and C. Deviations from this outline will be
announced in class and be posted on the notices
page. The reading assignments, unless otherwise stated, are from the
text or assigned papers and should be completed before the stated week.
There will very likely be adjustments to this outline, however all key
dates (assignment deadlines and exam dates) will remain firm.
Week starting May 12, 2003:
- Topics:
[C] Introduction and overview to course. Explanation of how a computer works, Von Neumann architecture. Some history of the C language and why it is prominent. Programming style. Explanation of a simple example.
Explanation a more complex example. [UNIX]] Basic commands. The UNIX environment and how to move around in it. The available UNIX environments [Linux and Solaris] and how to use the campus resources. Basic UNIX editing commands on selected editors and how to compile and run a program.
- Reading: [C] Chapter 1 [UNIX] Chapter1,
Chapter 2, Chapter 3, Chapter 6, Chapter 7, Chapter 8
- Events: Assignment #1 posted on Monday and due on Wednesday. Assignment #2 posted on Wednesday.
Week starting May 19, 2003:
- Topics: [C] Character input and output. Standard input output and redirection. Functions. Passing parameters to functions.
] Arrays. Variables and variable scope. Good variable names. Data types and sizes. [UNIX] Advanced UNIX editing commands using selected editors. Introduction to HTML.
Compiler options for UNIX programs. And overview of UNIX tools [awk, tar, etc].
- Reading: [C] Chapter 1, Chapter 2 up to
and including 2.4 [UNIX] Chapter 14, Chapter 16
- Events: Assignment #2 due on
Wednesday
Week starting May 26, 2003:
- Topics: [C] Operators and expressions. Logical and relational operators. Bit-wise operators. Type conversions. Precedence and order of Evaluation. [UNIX
] Explanation of Internet protocols and HTML.
- Reading: [C] Chapter 2 [UNIX] Chapter 18,
Chapter 20, Chapter 23, Chapter 25
- Events: No classes on Monday, May 26 due to Memorial Day holiday. Assignment #3 due on Wednesday.
Week starting June 02, 2003:
- Topics: [C] Control flow using if-else, loops, etc. Break.
Program design, top down approach, etc. [UNIX] Exploring the UNIX shell and shell commands. More shell commands and editing commands.
- Reading: [C] Chapter 3, Chapter 4 up to
and including 4.4 [UNIX] Chapter 10, Chapter 11, Chapter 12, Chapter 30
- Events: Assignment #4 due on
Wednesday.
Week starting June 09, 2003:
- Topics: [C] Functions and improving program structure. Using header files to share variables, prototypes, etc.
Static variables. Block structure and initialization. Recursive programming. [UNIX] Make files. Configure files and programming tools.
- Reading: [C] Chapter 4 [UNIX] Chapter 33
- Events: Assignment #5 due on Wednesday.
Week starting June 16, 2003:
- Topics: [C] Functions and program structure. Preprocessor. Include files and macros. Conditional compilation.
[UNIX] FTP, Telnet and email access commands.
- Reading: [C] Chapter 4 [UNIX] Part V:
Unix Networking [glance through]
- Events: Exam #1 on Wednesday, June 18. Assignment #6 due on
Wednesday.
Week starting June 23, 2003:
- Topics: [C] Designing and coding structured programs. Pointers and arrays. Pointer programming examples. Two-dimensional arrays.
How to use pointers in programs. [UNIX] Debugging a program using print statements. How to use the UNIX debugger.
- Reading: [C] Chapter 5 [UNIX] Chapter 32,
Chapter 33
- Events: Assignment #7 due on Wednesday.
Week starting June 30, 2003:
- Topics: [C] Structures. Examples on using structures in programs. Dynamic memory allocation. File handling and input output functions. [UNIX I] More examples on how to debug programs and UNIX utilities that can help.
More shell scripting and description of startup files and environment variables, etc.
- Reading: [C] Chapter 6, Chapter 7 [UNIX]
Chapter 26, Chapter 28, Chapter 29, Chapter 30, Chapter 31
- Events: Assignment #8 due on Wednesday.
Week starting July 07, 2003:
- Topics: [C] Designing and coding a complex example program with structures, arrays, dynamic memory, input and output files, etc. Best practices when coding.
Standard libraries and review of useful functions. [UNIX] Example on using a modern GUI based integrated environment (ex: KDE running on Linux). An introduction to processes and threads in UNIX. Shared memory
[will not appear in exam; information only].
- Reading: [C] Chapter 8 [glance through],
Appendix B [UNIX] None
- Events: Assignment #9 due on
Wednesday.
Week
starting July 14, 2003:
- Topics: [C] Review of course contents and question and answer session. [UNIX] Review of course contents and question and answer session.
- Reading: [C] None
- Events: Exam #2 on Wednesday, July 16. Assignment #10 due on
Wednesday..
Last updated by
Chamara Gunaratne on