Instructor:
Michelle Strout
Office: 342 CS Building
Office Hours: Wed 3-5pm in 130 and by arrangement
Email: mstrout@cs.colostate.edu
GTA:
Ryan Stern and Navini Dantanarayana
Office: 120 computer lab
Office Hours: Wed noon-2pm, Wed 2-3pm, Thur 8am-10am, Thurs 6pm-8pm, Fri 5-6pm
Email: rstern@rams.colostate.edu and navini.dantanarayana@gmail.com
Lecture Time and Place:
12:30-1:45, TR, Wagar 133
Recitations:
Wednesday, 9:00am-9:50, COMSC 225
Wednesday, 10:00am-10:50, COMSC 225
Wednesday, 11:00am-11:50, COMSC 225
Thursday, 3:00pm-3:50, COMSC 225

This course presents a bottom-up introduction to computer architecture, beginning with digital gates and number representation; building up through the Von Neumann model, Instruction Set Architecture (ISA) and assembly language; and ending with C programs interacting with assembly programs. Most of the concepts in this course will be reinforced through programming assignments in C.

In CS 270 students write a number of C programs to learn concepts by programming them and to build confidence in the C programming language, which is an important language used frequently in industry and systems research. We also develop important software practice concepts such as revision control, test driven development, and debugging. There will be at least one deliverable a week.

Rap written by Daniel Elliot about CS 270:

    I make a call to the run time stack
    Jump R7 and I'm headn' back
    Pop my locals & settn' globals
    I'm coding solo & smokin' chosos
    Compilers -- they obey my will
    Making symbol tables just for the thrill
    You debug like the plague of Moses
    My code compiles like a bed of roses
News:
Course final grades have been posted on RamCT. (Michelle 12/14/12)

PA7 grades have been posted on RamCT. Checkin can be used as usual. (Ryan 12/14/12)

Class percentages except for PA7 and the final have been posted in the RamCT grade book. This percentage is for 70 points of the course. To figure your grade multiply 70 by this percentage and then 5 by the percentage you think you will get on PA7 and then 25 by the percentage you hope to obtain on the final. (Michelle 12/5/12)

One instruction test case for PA7 assignment really requires 2 because it needs a halt. PA7 writeup has been updated. (Michelle 12/5/12, 3:52pm)

Grading criteria has been added to the PA7 assignment description. (Ryan 12/5/12)

Extra Office Hours. On Monday December 10th, I will be in my office from 2pm until 5pm to answer any last minute questions about the final. If you cannot make this time span due to 2 finals in a row during that time, then please let me know so we can set up an alternative time for questions. (Michelle 12/4/12)

PA6 has been regraded with modifed test cases. Many of the scores have improved. (Ryan 11/30/12, 1pm)

HW6 had a no late submission policy. I forgot about this and let 2 people submit late. Now to be fair to everyone, if you want to resubmit or submit late, you have until 4:30pm today to submit the assignment, in paper to my office. All late submissions will receive they typical 25% off. (Michelle 11/30/12, 8am)

Since HW6 is due today right before class, we are going to do course reviews at the end of class today. The course reviews will start at 1:35. (Michelle 11/29/12, 8:30am)

The final survey has now been posted. The questions on the survey will be on the final just with different example codes. Feel free to post examples and answers to the ramct discussion board. (Michelle 11/28/12)

For PA6, a portion of the grades were low. Many of you did not implement .ORIG and/or .END. If you figure out the up to 10 lines of code that need to be added to pass_two() by Tuesday December 4th at 11:59pm, then you can email those to cs270@cs.colostate.edu. We will regrade, but we will take 15 points off for having to make the change. If you have any questions about PA6, please direct them to cs270@cs.colostate.edu. (Michelle 11/27/12, updated 11/29/12)

For PA7, the regression testing scripts have been posted on the discussion board. (Michelle 11/27/12)

For PA7, a number of you pointed out that SelImm should be 1 and SelReg should be 0 to correspond with bit position 5 in the ADD and AND instruction formats. These have now been changed in the provided in lc3sim-start.tar. (Michelle 11/27/12)

For PA7, the interface for the logic_MARMUX() helper function has been modified and the defines to select lines such as SelSEXT11, etc. have been changed to correspond to the diagram in LC-3 viz. You do not HAVE to use the new logic.h. It is only provided to make the code more consistent with the diagram. (Michelle 11/25/12)

Keys for HW4 and for questions 9 and 10 in HW5 have been posted on the discussion board. (Navini 11/12/12)

HW6 and PA7 have been posted. (Michelle 11/10/12)

Old News:
A new version of test-err-bound.asm is in the provided RegressionTests/ directory. Before the bound problem was on LDI, but the PA6 writeup indicates you only have to check bounds on AND, ADD, and TRAP. (Michelle 11/14/12)

A new version of regress.sh is available. This version correctly checks long .asm files, and no longer relies on the simulator. (Ryan 11/13/12)

The sanity check commands in the PA6 writeup had an error in them but they are now fixed. See the discussion board post. (Michelle 11/13/12)

Notes from class today have been posted. (Michelle 11/13/12)

The PA6 deadline has been extended to Saturday November 17th at 11:59pm. (Michelle 11/12/12)

Quiz 11 question 10 bug has been put back in. It was accidentally fixed prematurely. (Michelle 11/11/12 3pm) Due to this issue, everyone received full credit for question 10 in Quiz 11. (Michelle 11/12/12)

There are plenty of PA6 test cases for ADD, AND, and NOT. New test cases should focus on testing ST, STR, STI, LD, LDR, LDI, LEA, BR(n,z,p), JMP, and JSRR. Remember that the test cases are due on November 11th on the RamCT discussion board. (Ryan 11/9/12)

Check out some of the questions about HW5 that have been recently answered on the discussion board. See the discussion board post entitled "Course grade after HW4 and R11". Also note that you need to test using lc3sim in ~cs270/lc3tools/(post about this is entitled oldlc3sim vs. new lc3sim). Note that there are now 2 forums for PA6. (Michelle 11/7/12)

Quiz 11 has been posted and is due November 11th at 11:159pm. (Michelle 11/7/12)

PA6 has been posted and is due November 11th and 15th at 11:159pm. (Michelle 11/2/12)

Quiz 10 has been posted and is due November 4th at 11:59pm. (Michelle 11/2/12)

HW4 has been posted and is due Thursday November 1st at 11:49pm. (Michelle, 10/23/12)

Quiz 9 has been posted and is due Sunday October 28th at 11:49pm. (Michelle, 10/23/12)

Please note that the lecture order for this week has been changed. (Michelle, 10/22/12)

A function for printing in decimal has been posted on RamCT. Use this function to print out numbers in PA5. If you already wrote a print routine, you can submit it as print.asm for 5 points of extra credit. (Ryan, 10/22/12)

PA5 has been posted and is due Thursday October 25th by 11:59pm. (Michelle, 10/17/12)

Quiz 8 has been posted and is due Sunday October 21th by 11:59pm. (Michelle, 10/16/12)

The Midterm grades have been posted along with everyone's class percentage after the midterm. There is an important informational post about this on the RamCT discussion board in the announcements forum. Please note that the withdrawal date is Monday October 15th. (Michelle, 10/13/12)

HW3 has been posted and is due Thursday October 18th before class starts. (Michelle, 10/12/12)

Quiz 7 has been posted and is due Sunday October 14th by 11:59pm. (Michelle, 10/11/12)

Example midterms are posted on the schedule. (Michelle, 10/10/12)

PA4 grades have been posted. Ryan's solution is posted on the RamCT announcments board. (Ryan, 10/9/12)

The midterm survey has been posted on RamCT and is due Sunday night October 7th. (Michelle, 10/4/12)

I will be in the lab (room 120) from 3-5pm today. (Michelle, 10/3/12)

Your grades now includes a Before Midterm Percentage column. The highest the percentage can be is 100. In terms of class points so far, there have been 13.01 points out of 100 done. This means you have 87 more points of work left. The midterm is 20 of those points. (Michelle, 9/28/12)

To make the output of the lc3sim-tk easier to read, select the options button at the bottom center of the page. Then click on the code font name and select one of the mono fonts (e.g. DejaVu Sans Mono). You may also choose to change colors/sizes. Make sure you save your changes. (Fritz 9/27/12)

A new version of lc3sim is online. If you have any problems, let me know ASAP. The old version is available as ~cs270/lc3tools/oldlc3sim-tk. (Fritz, 9/27/12).

Grades for PA3 are posted. Use ~cs270/bin/grade PA3 | less to view the grade file. (Ryan, 9/26/12)

PA4 has been posted. PA4 is due October 4th by 11:59pm. (Michelle, 9/23/12)

Quiz 5 has been posted. Quiz 5 is due Sunday September 23th by 11:59pm.

Grades for PA2 are posted. Use ~cs270/bin/grade PA2 | less to see each test case. (Ryan, 9/18/12)

Grades for PA1 are posted. Use ~cs270/bin/grade PA1 | less to see each test case. (Ryan, 9/8/12)

Quiz 4 and PA3 have been posted. Quiz 4 is due Sunday September 16th by 11:59pm. PA3 is due September 20th by 11:59pm. (Michelle, 9/6/12)
Quiz 3 has been posted and is due Sunday September 9th by 11:59pm. (Michelle, 9/5/12)

Per a student suggestion, started posting example codes online. Lecture5 notes have been edited quite a bit. (Michelle, 9/5/12)

The syllabus has been updated with percentages for each programming and homework assignment. (Michelle, 9/3/12)

PA2 has been posted on the schedule. PA2 is due 9/13/12. (Michelle, 9/3/12).

Quiz 2 has been posted on RamCT. Quiz 2 is due 9/2/12. (Michelle, 8/30/12)

We are still having class Tuesday 8/28/2012. (Michelle, 8/27/12).

Quiz 1 has been posted on RamCT. Quiz 1 is due 8/26/12 by 11:59pm. (Michelle, 8/23/12)

HW1 has been posted on the schedule (Michelle, 8/22/12).

Recitations are required, including recitations during the first week of class.

The Course Logo is a picture taken by the instructor on the Colorado State University Campus.