The spring semester addresses "low-level" problem solving on the computer. Here we "peel back" the abstractions and investigate the underlying machine. We learn assembly language for the Intel x86 chips, and along the way investigate how information is stored and manipulated internally.
We also study the 'C' language. 'C' is often described as "a high-level low-level language" (or vice-versa), as it is a high-level language that provides access to many of the features we usually associate with assembly and machine languages. We then combine the skills of PAC I with the syntax of C, and the concepts of object-oriented programming to conclude with an exploration of the Java programming language.
The course assignments are designed to develop familiarity with benchmark concepts of computer science, and are often selected to provide anticipatory insight into topics encountered later in the core CS graduate classes such as Programming Languages, Algorithms, Compilers, and Operating Systems.