Roger L. Kraft

Class Lectures and Reading Assignments
CS 22300
Computer Architecture & Assembly Language
Fall, 2015

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

  • Tuesday, December 8.
  • Thursday, December 3.
    • See the homework page for your fourth homework assignment.
    • Read Section 3.4.4 (pages 189-191) about the CPU stack.
    • Read Section 3.7 (pages 238-255).
    • Do Practice Problems 3.6 - 3.10 in Section 3.5.
  • Tuesday, December 1.
    • Read Section 3.6.5 - 3.6.7 (pages 209-232).
  • Thursday, November 19.
    • Read Section 3.6.1 - 3.6.4 (pages 200-209).
  • Tuesday, November 17.
    • Do Practice Problems 3.1 - 3.5 in Section 3.4.
  • Thursday, November 12.
    • Read Section 3.5 (pages 191-200).
  • Tuesday, November 10.
    • The first exam is today.
    • Read Section 3.4 (pages 179-191).
  • Thursday, November 5.
    • Remember that the midterm exam is this Tuesday, November 10.
    • I upgraded the 64-bit version of GCC in the following zip file to GCC 5.1. I also added a graphical debugger. Download the zip file and unzip it to your C:\ directory.
  • Thursday, October 29.
    • Reread Section 1.2 (pages 4-6), Section 1.4 (pages 7-11), and Section 2.1.5 (pages 49 - 50).
    • The following zip file contains notes and code for Chapter 3.
  • Thursday, October 22.
  • Tuesday, October 20.
    • The midterm exam will be Tuesday, November 10.
  • Thursday, October 15.
    • Read Section 2.3.3 (pages 95-96) and Section 2.3.6 (pages 101-103) and Section 2.3.8 (pages 107-108).
    • Read Section 2.4 (pages 108-125).
    • Here are review problems for the upcoming midterm exam.
  • Tuesday, October 13.
    • No class (Fall Break).
  • Thursday, October 8.
    • See the homework page for your third homework assignment.
  • Tuesday, October 6.
    • No class today.
  • Thursday, October 1.
    • Read Sections 2.3.1 - 2.3.2 (pages 84-94) from the textbook which covers unsigned and two's-complement integer addition.
  • Tuesday, September 29.
    • Today we will start talking about integer representations.
    • Read Sections 2.2.4 - 2.2.8 (pages 70-84) from the textbook which covers C's casting between different integer representations.
    • The following zip file now contains some notes and code for Section 2.2.
  • Tuesday, September 22.
    • See the homework page for your second homework assignment.
  • Tuesday, September 15.
    • Read Sections 2.2.1 - 2.2.3 (pages 59-69) from the textbook which covers C's unsigned and signed integer representations.
    • Be sure to do Practice Problems 2.17 and 2.18.
  • Thursday, September 10.
    • Read Sections 2.1.6 - 2.1.9 (pages 50-59) from the textbook which covers C's "boolean operators", "bitwise operators", and "shift operators".
    • Be sure to do Practice Problems 2.8, 2.12, 2.13, 2.14, 2.16.
    • Here is the textbook's code, along with some extra notes, for Chapter 2.
  • Tuesday, September 8.
  • Thursday, September 3.
    • Read Sections 2.1.1 - 2.1.5 (pages 32-50) from the textbook.
    • Be sure to do Practice Problems 2.1 - 2.7.
    • Here is the textbook's code for Chapter 2.
    • Today we reviewed the following ideas for the first homework assignment.
      1. programs vs processes
      2. parent process vs child process
      3. use Process Explorer or Process Hacker to see Window's process tree
      4. environment variables
      5. how a child process inherits its parent's environment
      6. the shell (either bash on Linux, or cmd.exe on Windows) is the easiest way to create environment variables.
      7. getenv() function retrieves environment variable values.
  • Tuesday, September 1.
  • Thursday, August 27.
  • Tuesday, August 25.
    • Read Chapter 1, Sections 1.1 - 1.8 (pages 2-21) from the textbook.
    • Important You need to get an account on Purdue Cal's Peregrine Linux cluster. We will use it as an example Linux system. Log on to Purdue's "research account management tool" using your Purdue career account. When you are asked for a "research group name", use "Purdue Calumet". In the textbox for comments, put "CS 22300-01 Professor Kraft". Then click the "Submit Request" button, and we will see what happens.
    • Try using your Purdue career account to log on to the Unix system mentioned for students on the following page.
    • You log on to a "remote" Linux computer using a program like PuTTY. Download and unzip the following file. After unzipping the file, open the putty folder and run the putty.exe program. Then tell PuTTY that you want to log on to the computer named peregrine1.rcac.purdue.edu.
    • You can transfer files between a local Windows computer and a "remote" Linux computer using a program like WinSCP. Download and unzip the following file. After unzipping the file, open the winscp575 folder and run the WinSCP.exe program and connect it to peregrine1.rcac.purdue.edu.
    • Read Topics 1 - 4 of the software carpentry tutorial on the Unix Shell.