Corning Community College
CSCS2730 Systems Programming
======Systems Programming Progress (sppX)======
=====Objective=====
To immerse yourself in relevant and important aspects of library API, documentation, OS facilities, and other systems-level programming functionality, aided by the "Understanding UNIX/Linux Programming: A Guide to Theory and Practice" book that we will spend the semester exploring.
=====Task=====
Each week, throughout the semester, the aim will be to focus on a chapter in the book:
* reading the chapter
* discussing the chapter (in the class discord)
* experimenting/playing with the content in your own code
* identifying a UNIX tool or program you'd like to implement, making use of pertinent concepts (announce this in discord; where possible, I'd like each person to do a DIFFERENT thing)
* implementing some UNIX tool or program that incorporates content covered in the given chapter (and where applicable, builds upon previous chapters). While not exclusively limited to programming problems at the end of each chapter, they are a good starting point (clear with me any deviations from that pattern).
* code should include statement of limitations (what functionality does your code implement, what, especially compared to standard system tools, does it not implement)
* no compiler notes, warnings, syntax errors, logical errors, or runtime errors (if there are compiler flags to issue, they should be clearly documented in the code/utilized in Makefile)
* if you are implementing a UNIX tool (even if with only a subset of functionality), if it outputs in a certain way, or takes input in a certain way (as the core value of the tool), your implementation should, as best as possible, seek to conform with that structure of content.
The overall aim is to enable you to challenge yourself, explore areas and concepts you are not familiar with, and grow as a programmer and problem solver. I don't want to see you just doing things the way you are familiar with (simply because you've always done them that way).
The outline of semester progress:
^ week ^ project ^ chapter ^ points per item (PTS) ^ TOTAL |
| 2 | spp2 | Chapters 1 and 2 | 1 | 13 |
| 3 | spp3 | Chapter 3 | 2 | 26 |
| 4 | spp4 | Chapter 4 | 2 | 26 |
| 5 | spp5 | Chapter 5 | 3 | 39 |
| 6 | spp6 | Chapter 6 | 3 | 39 |
| 7 | spp7 | Chapter 7 | 4 | 52 |
| 8 | spp8 | Chapter 8 | 4 | 52 |
| 9 | spp9 | Chapter 9 | 5 | 65 |
| 10 | sppA | Chapter 10 | 5 | 65 |
| 11 | sppB | Chapter 11 | 6 | 78 |
| 12 | sppC | Chapter 12 | 6 | 78 |
| 13-15 | eoce | Chapters 13, 14, 15 | |
TOTAL:sppX:final tally of results (TOTAL/TOTAL)
*:sppX:read indicated chapter in book [PTS/PTS]
*:sppX:asked, responded, worked through any questions [PTS/PTS]
*:sppX:reveal of interesting insight, knowledge gained [PTS/PTS]
*:sppX:discussion regarding chapter content, library, system [PTS/PTS]
*:sppX:experimentation, playing reporting insights gained [PTS/PTS]
*:sppX:selection of UNIX tool or program to implement [PTS/PTS]
*:sppX:implementation of pertinent UNIX tool or program [PTS/PTS]
*:sppX:statement of limitations in code [PTS/PTS]
*:sppX:no warnings, compiler notes in code [PTS/PTS]
*:sppX:no syntax errors in code [PTS/PTS]
*:sppX:no logical errors in code [PTS/PTS]
*:sppX:no runtime errors in code [PTS/PTS]
*:sppX:duplicating similarly structured content in code [PTS/PTS]
Additionally:
* Solutions not abiding by spirit of project will be subject to a 25% overall deduction
* Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
* Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction
* Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction