Some resources for the course

Sample Midterm in Resources section of Sakai

Remote access to Linux machines

We will use the Duke OIT Linux machines for portions of this course. Please read this document on how to remotely access these machines.

Unix Tutorial

  • You should also go through this short tutorial on Linux

    File Access

    You can use CIFS to access the files in your home directory. Please see the OIT documentation on CIFS.

    Tools used in this class

  • Text editors:

    nedit is a fairly simple GUI-based editor on the linux machines.

    If you want to become a more sophisticated user of Linux editors you can explore gvim, vim, or emacs on your own.

  • Compiler: gcc
  • Debugger: gdb
  • C Programming Language

    Video snippets by Prof Drew Hilton (Duke ECE)
    This is an MIT OpenCourseWare set of lectures that does a good job of covering the basics for C programming.

    C Programming Examples

  • C Memory Layout Example array as list
  • C Bit Manipulation bit manipulation of Hex to extract float fields or for a float input with casting via pointers extract float fields from float input .

    MIPS Instructions

  • Assemblers, Linkers, and the SPIM Simulator (PDF). An overview of SPIM and the MIPS32 instruction set.
  • A two page MIPS quick reference guide from MIPS is here.
  • A three page document from me with MIPS instructions is here.

    SPIM: A MIPS32 Simulator

    Download the appropriate QtSPIM version for your platform from the SPIM web site.

    Assembly Programming Examples

  • sum = sum + i*i is here.
  • sum array is here.
  • recursive sum array is here.
  • recursive sum i*i is here.

    Logic Design Online Book

    Pragmatic Logic by William J. Eccles

    Logic Design Tool

    Logisim Original OR Logisim Evolution is a very nice tool that runs on any platform (MAC, Windows, Linux). You can use this to design and test circuits.