An Advanced Introduction to
Unix/C Programming

John Dempsey
COMP-232 - Programming Languages
California State University Channel Islands
Fall 2024

COMP-232, Programming Languages, is three classes in one. Mondays are a programming languages class. Wednesdays are an Advanced Unix/C Programming class using the materials below. At the end of class, the class becomes a compiler class where each student writes a compiler in C.

PRESENTATIONS

1. Introducing the Unix System   16 Slides
2. C Reserved Words   52 Slides
3. stdio.h - Standard I/O Library   27 Slides
4. C Library Functions   32 Slides
5. Unix System Calls   15 Slides
6. C Pointers   20 Slides
7. Unix Commands   28 Slides
8. Unix Shells   12 Slides
9. Unix Environment   9 Slides
10. Unix Makefile   9 Slides
11. Databases   26 Slides
12. flex & bison   16 Slides
12. Hash Tables   16 Slides
12. Parser Program   16 Slides
13. Other Topics
      register, errno, fork, signals, shared memory, message queues
  26 Slides

IN-CLASS EXERCISE HANDOUTS

1. Git Educated - A mini tutorial on gcc, make, and git   10 Pages
2. Unix: A Simple Operating System   7 Pages
3. Putty/sftp/ssh   6 Pages
5. Unixland   23 Pages
6. Debugging gdb   7 Pages
7. Debugging GDB Cheat Sheet   1 Page
4. sftp Public/Private Keys.com   8 Pages
8. Unix System Calls   6 Pages
9. Database Queries   10 Pages
10. RepoLeaf Classes   13 Pages
11. Programming Guidance   4 Pages

PROGRAMMING ASSIGNMENTS

LAB1. How to Install Ubuntu 22.04   7 Pages
LAB2. Programming Tasks 1-3   12 Pages
LAB2. Programming Tasks 4-5   12 Pages
LAB3. Programming Tasks 6-7   5 Pages
LAB4. Programming Tasks 8-9   4 Pages
LAB5. Linked List Student Database Task 10   12 Pages
LAB6. System Calls - Task 11   7 Pages
LAB7. Database Programming in C - Task 12   6 Pages
LAB7. Stocks - Task 13   7 Pages
LAB8. Scanner - Task 14   11 Pages
LAB9. Parser - Task 15   17 Pages
LAB9. Lex and Yacc Extra Credit   3 Pages
LAB10. Bison and Flex - Task 16   18 Pages
LAB 11: ciLisp Final Project   42 Pages

The above presentations and class materials can be used for free by non-profit organizations, like community colleges or universities, but must provide a URL link to comp232.com.

If you are a for profit organization, you cannot use the above material and must contact the author at john.dempsey@csuci.edu before use.

© 2024 John Dempsey - All Rights Reserved
Above materials are provided "AS IS" and "WITH ALL FAULTS".
Please contact author at john.dempsey@csuci.edu if you do see any errors.