Working Remotely
A guide to accessing a Linux enviornment on your personal computer can be found
here
A guide to installing a C compiler, lc3sim, and logisim can be found here.
Linux Operating System
The Computer Science Department maintains some useful general help information for students new
to using Linux:
CSU Computer Science information is found
here.
A useful Linux command reference card is found
here.
A simple framework for printf() style debugging may be foune
here.
LC-3 Programming
The animation for the LC-3 is found
here.
An overview of LC-3 commands is found
here.
The reference sheet for LC-3 commands is found
here.
A detailed manual, with examples for each instruction, is found
here.
Instruction diagrams for LC3 instructions is found
here.
An example of LC3 assembly code along with the associated symbol table and hex/binary generated by the LC3 compiler is found
here.
An overview of options for implementing IO on the LC3 is found
here.
Fritz Sieker's version of the LC-3 tools for Linux and Mac are found
here.
A tutorial on how to convert C code to LC-3 assembly by Fritz Sieker is
here.
Undesrtanding the LC3 runtime stack by Fritz Sieker is
here.
This
link
presents a detailed layout of the LC3 stack during the execution of the
printNum subroutine in P7.
Iterative Factorial implemented in C and LC3.
Stack Frame Examples implemented in LC3 with and without PUSH/POP.
State Machines
The simple state machine example shown in lecture is
here.
State machine example implemented as a
Mealy or
Moore machine. Logisim implementation
here
Sign Arrow state machine in logisim
Moore version |
Mealy version
16 bit memory example in logisim
here
Number Representation
Website for ASCII conversion is found
here.
Website for IEEE floating-point conversion is found
here.
Website for two’s complement math is found
here.
A practice sheet on number conversion is
here.
An example of floating-point addition is
here.
C Programming
One of hundreds of C programming tutorials on the web can be found
here.
Information on the C standard library, organized by include file, can be found
here.
Cheat sheet for C debugger can be found
here.
Engineering methodology presented in class is
here.
C Operator Precedence
here.
GCC Compiler Docs
here
C Reference
here
Peer Instruction
Peer instruction sessions are held during lectures, generally on Thursdays. The
format will be described in detail at the time of each session, but it generally
consists of each student answering questions individually and in a group. The premise
is that groups perform better than individuals! We organize peer session by assigning
students to groups.
iClicker Registration
Register your iClicker on Canvas. The remote ID is the number found on the back of your iClicker
remote. If you cannot read the ID on your iClicker, there is a kiosk in the bookstore where you
can retrieve it. Here is a list of iClickers that appear not to be registered. If your iClicker
is on this list, please try to register again, then send me email:
Unregistered Remotes:
Piazza Forums
This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and
efficiently from classmates, teaching assistants, and myself. Rather than emailing questions to the teaching staff,
I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email
team@piazza.com. Piazza will be accessed via the Module tab on Canvas.
Other useful tools...
- Questions to almost any C programming question you can think of can be found
here.
- Very thorough site on the subtle differences between C and Java is
here.
- Stack Overflow is great for finding a variety of answers to your question from people with ranges of expertise levels, found
here, or by adding "stackoverflow" to your Google search.
- w3schools is great for web-development related languages and resources, found
here.
- Microsoft software can be downloaded by students for a reduced price through the Dream Spark program, found
here.