CS 2461: Computer Architecture I

Instructor: Prof Bhagi Narahari
narahari@gwu.edu
Class Schedule: Tues, Thurs 2:20--3:35pm, SEH 1300-1400
Fall 2019 Office Hours: Tues 12-1pm, Thursday 11am-12pm, or by appointment

Course Outline
This is an introductory course on Computer organization and computer systems. The  course will expose the student to the different layers in a computer system and examine the working of a computer system at these different levels. It will expose the student to the low level details of how machines are assembled and the tools to program them -- it will expose what really happens when your programs are run, thereby providing you with the intellectual tools needed to solve problems when things go wrong. In addition to the theoretical concepts, the course through the lab section will provide introduction to systems programming in the Unix environment using standard tools and focusing on issues such as performance and correctness. The course will take a bottom-up approach: it will start with the basic components of a computer system, machine representation of data, digital logic circuits, instruction sets and assembly programming, and then it uses the C language and the Unix operating system to study system level aspects such as memory management, file systems, safe programming, system stack, debugging and performance tuning of programs. The course will also expose students to working in teams. The lecture, and some lab sessions, will consist of in-class activities and students will be required to work in teams.


Course Objectives

https://www2.seas.gwu.edu/~bhagiweb/cs2461/
Learning Outcomes

Learning Model: How do you prepare for this course, and what is expected of you.

You are expected, and required, to read the materials BEFORE coming to the lecture. The lecture materials will  be available online, usually after the lecture -- these consist of powerpoint slides and, for some of the topics, videos which will be posted on Blackboard. The best way to prepare for class is to read the textbook, and notes (posted on blackboard or links to materials at other websites) before coming to the lecture -- normally, lecture slides will be made available after the class . At least one of the two lectures or lab each week will consist of in-class activities/exercises -- these are meant to enhance your understanding of the theoretical concepts as well to help you assess what you have learnt.
You will work in teams during in-class exercises as well as some of the lab assignments and projects. Participating in team activities is essential for learning in this course. 

Prerequisites and Texts:

The material in the text (and the text website) will be sometimes supplemented by notes posted on the course website (lecture notes link)

Software: 

 Piazza

We will be using Piazza for discussions - you are encouraged to post your questions, and discussions, but please do not post answers to homeworks/projects etc. The Teaching staff will be regularly monitoring Piazza and we expect that you will get the fastest response to your questions if you post on Piazza.

Lab Section and Teaching Assistants

You must be registered in a lab section. These will be conducted by the TAs: Antonio Woods, Guanlin Jing, the undergraduate TA Sarah Morin . The lead TA is Antonio Woods. In addition, there are two undergraduate learning assistants who will be holding review sessions and weekly study halls -- Kevin Deems and Henry Jaensch-- and a grader Wei Guo.

TA Contact Info: 

Antonio Woods  antonio_woods@gwu.edu
Wei Guo - weiguo@gwu.edu
Guanlin Jin guanl001@gwu.edu
Sarah Morin sarahmorin@gwu.edu
Kevin Deems software8@gwu.edu
Henry Jaensch

ACM   CS study hall (with LAs and UTAs):Time and Place TBD

                     


        


Course Materials

Grading and Course Requirements

Syllabus


Lecture Notes

Homeworks - blackboard


Team Assignments


You are not allowed to collaborate on the homeworks and the lab assignments. Collaboration includes searching the web for answers or for code. On programming projects and hardware projects, you can collaborate ONLY if the project is assigned to a two or three person team.  For programming projects, you cannot refer or use any code available on the website that provides a solution (or a path to a solution) to the assigned work. I will be using a tool that checks for code similarities and any pair of programs with greater than 25% similarity will be closely examined.  Please refer to the academic integrity policy linked from the course web page – this policy will be strictly enforced.

 Academic Integrity Policy