Skip to main content Link Menu Expand (external link) Document Search Copy Copied

CIS241 - System-level Programming and Utilities

Table of contents

  1. Upcoming Deadlines
  2. Course Description
  3. Learning Objectives
  4. Lecture
  5. Term Project
  6. Textbooks (none required)
  7. Assignments
    1. Submissions
  8. Resources
    1. Terminal Installation
    2. Git/GitHub-Related
    3. Other

Upcoming Deadlines

Note - check Blackboard for any in-class assignments and assignment files!

  • IC1 - 08/27 by 11:59pm
  • HW1 - 09/01 08/29 by 11:59pm

Course Description

Introduction to software infrastructure underlying development of computer programs. Topics include Linux utilities, shell scripting, processes, facilities for programming, the C programming language, libraries, structures, pointers, dynamic memory management, and system calls.

Prerequisite: C or better in CIS 163 or C or better in CIS 260

Credits: 3


Learning Objectives

After successful completion of the course a student should be able to:

  • Application/Use: Use command-line interface to do basic system operations such as create a directory, modify file permissions, create a link, manage processes, and access a computer remotely.
  • Mechanism/Manipulate: Manipulate basic features of a command-line environment such as the ‘PATH’, which specifies the locations of executable programs, and the ‘CLASSPATH’, which specifies the locations of Java classes.
  • Synthesis/Write: Write basic meta-programs in a shell or scripting language, e.g. to compile statistics for numbers stored in text files.
  • Application/Use: Use build-system utilities such as ‘make’/’cmake’, ‘gdb’, or ‘SCons’ to edit, compile, test, time, debug, and profile a C program.
  • Synthesis/Construct: Construct programs that access data by using the range of pointer operations and manual dynamic memory management to implement basic ordered binary trees a.k.a. binary search trees (BSTs).

Lecture

Class meets 3 times a week in person. Typically class will comprise a lecture, discussion, and/or in-class work.


Term Project

There won’t be a full-on term project, however the last assignment will be larger in scope (and weighted more). We’ll talk about this after the midterm.


Textbooks (none required)

There are many free resources out there on the internet. Here are a few recommended:

The following textbooks are available for free online through GVSU’s library. You may find a combination of them useful:

Assignments

All assignments are to be submitted by 11:59pm on the date they are due. Please check Blackboard regularly for upcoming due dates. If you are struggling or are having problems, please contact me in advance. If you message me or email me the night something is due I will most likely not accept your reasoning. If you get in touch early then we can work it out.

  • Individual and team assignment late penalty: 10% per day (including weekends). 0 after 3 days.

Submissions

  • All course content is hosted on this page.
  • All assignment submissions are to be submitted via Blackboard!

Resources

Here are a list of resources I’ve collected that might help out.

Terminal Installation

(From Dr. Carrier):

Other