User:Jeffj/CS4-5223/Syllabus

From A-State Computer Science Wiki
< User:Jeffj‎ | CS4-5223
Revision as of 15:03, 19 August 2019 by Jeffj (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CS 4-5223 Unix Systems Programming

Fall 2019, Section 001, TR 9:30am-10:45am, CSM 211 (3 credits)

Instructor

Dr. Jeff Jenness
OfficeCSM 132Office HoursTR 11:00am-12:00pm and MW 11:00pm-12:00pm
Phone870-972-3978 ext. 8117Emailjeffj@astate.edu


Course Description

CS 4-5223.  UNIX Systems Programming
System level programming in UNIX systems. Prerequisites: CS 3113. Fall.


Objectives

The student will learn the fundamentals of the Unix programming environment. The student will be able to understand and program with the Unix application programmer interfaces including the file, directory, process, and communication APIs.

Outcomes

  • Understand the following concepts:
    1. Unix command-line environment
    2. Regular Expression syntax and construction
    3. basic Unix system structures
    4. Unix streams and file I/O
    5. Unix process structure and signals
    6. threads and thread interaction
    7. IPC communication protocols
    8. Networking with TCP/IP
  • Understand and use the following software (minimally):
    1. Unix command shell (bash)
    2. GNU make and gdb
    3. GNU compiler suite (C or C++)
    4. Unix POSIX APIs on Debian Linux
  • Explore aspects and understand the Unix APIs:
    1. I/O APIs (File, Directory, Formatted, Asynchronous)
    2. Process APIs (Control, Signals, Threads, Daemons)
    3. Communication APIs (Interprocess, Networking)
  • Be able to construct Unix programs using the tools and APIs

Grading

Grades are assigned on a standard scale with the following weights:

Quizes50%
Projects (3)50%

Schedule

(subject to change)

Week  TopicReadingAssignment
1 The Unix environment and basic commands
2 Regular Expressions in Unix
3 The Unix programming environment: GCC, vi, make, gdb Chapter 1 & 2
4 Basic File I/O and streams Chapter 3
5 Advanced File I/O, Directories and Control Chapter 4 & 5
6 System File Structure and Information Chapter 6
7 The Process Environment Chapter 7
8 Process Control and Relationships Chapter 8 & 9
9 Signals and Signal Processing Chapter 10
10 Threads and Thread Control Chapter 11 & 12
11 Daemons Processes Chapter 13
12 Asychronous I/O Chapter 14
13 Interprocess Communication Chapter 15
14 Networks and Socket Programming Chapter 16

Dates to Remember

Assignments

Projects

Go here for past and posted projects. Submit all projects by email to jeffj@astate.edu.

Materials

*NEWS*

Textbook

The Linux Programming Interface: A Linux and UNIX System Programming Handbook, 1st ed. (ISBN: 978-1593272203), by Michael Kerrisk. No Starch Press, 2010. (Amazon)

Online Resources

Go here to browse the course online file repository.
25 Free Books To Learn Linux For Free

Software Downloads

Course Policies

See Department Policies which will be adhered to within the course.

See Also

*LATEST NEWS*

IBM Vows To Spend $1 Billion To Promote An Operating System That Competes With Windows    www.appy-geek.com/Web/ArticleWeb.aspx?regionid=1&articleid=13120775    Apply Geek, Sep 17, 2013

Online

  • Advanced Programming in the Unix Environment    www.apuebook.com/apue3e.html    Another excellent book describing the Unix API
  • The UNIX System    www.unix.org    The official UNIX system at The Open Group with some good historical information and standard specifications
  • Unix Timeline    www.levenez.com/unix/    Chart of Unix system history from 1969 to present
  • The Unix Programming Environment    markburgess.org/unix/unix.html    An older book by Mark Burgess, but still relevant [PDF]
  • GCC, The GNU Compiler Collection    gcc.gnu.org    Contains all the information for the GNU compilers and add-ons
  • clang Compiler Family    clang.llvm.org    Contains all the information for the C language family frontend for LLVM
  • Regular Expression (Wikipedia)    en.wikipedia.org/wiki/Regular_expression    Article on regular expressions
  • Regular-Expressions.Info    www.regular-expressions.info    In-depth information on regular expression syntax in software
  • regular expressions 101    regex101.com    Online regular expression tester
  • RegExr    regexr.com    Another online regular expression tester


create PDF version