Systems-Level Programming and Nerd Culture, Part I

Systems Level Programming covers the C programming language and development in a linux environment. Over the course of the semester students will learn how to control the main components of a computer (memory, storage, input/output, processor) at a low level. Over the course of the semester students will write a terminal shell as well as network server and client programs.

AP Computer Science is a prerequisite for Systems Level Programming.

Faculty/Sections:

Resources

  • How to CompSci@Stuy
  • Syllabus
  • Markdown help
  • Emacs Stuff
  • Debugging Stuff
  • Linux Resources
  • Mac Resources
    • Mac OSX is built off of a linux style base system (BSD Unix), which makes compiling and running source for linux programs easier on the mac without having to install Ubuntu. Note that there are some differences between the OSX system libraries and the linux ones. Usually, the OSX compiler is less forgiving the the Ubuntu one.
    • If you have OSX version 10.6 or later, you should be able to use the Mac App Store to find Xcode and install it for free.
    • You will need to install the command line tools after Xcode installs, this is easy, just open a terminal and enter: $ xcode-select --install
    • x11, the linux style windowing environment
    • Homebrew
    • Homebrew allows you to install linux style applications via the Mac OS terminal application, it is not necessary, but can be very useful. You must have the Apple Developer Tools installed in order to use Homebrew.
  • Windows Resources
    • Wubi
    • Run ubuntu as a separate application in windows - not a virtual machine
    • cygwin
    • Cygwin installs linux library functions onto your windows computer. It is not a full linux version, and can be confusing to install/use. Installing and using Ubuntu in some way is highly recommended.