Mines Logo

Course Code: CSCI 341 Computer Organization

Semester Year: Fall 2021, August 23 - December 15

Credit Hours: 3.0

Class Meeting Time/Place:
Section A: MZ 108, 2:00-2:50 pm MWF (Recorded)
Section B: BB W210, 11:00-11:50 am MWF
Section C: MZ 326, 3:00-3:50 pm MWF

Do not assume other class policies apply in this class - this syllabus lays out this course’s policies. Be sure to read it all, so you are aware of this course’s policies and expectations.

Section A will be recorded and made available to all sections for students who are quarantined or ill.


Course Coordinator/Section A Instructor: Prof. Amelia Read read (at) mines (dot) edu
Office Hours: all on Zoom (link on Canvas) 11:05am-11:50am MF, 1pm-1:45pm W, or by arrangement

Section B Instructor: Prof. Kyle Moran ksmoran (at) mines (dot) edu
Office Hours: TBD

Section C Instructor: Prof. Michael Humphrey michaelhumphrey (at) mines (dot) edu
Office Hours: TBD

Teaching Assistants (TAs)


Prerequisites

The prerequisite is CSCI-261 Programming Concepts. The corequisite is CSCI-262 Data Structures

This course includes programming in RISC-V assembly, applying concepts from CSCI 261 and CSCI 262.

Required Technology

Online Community and Communication

Course flow, grades, quizzes, homework, and programming assignments will be provided and submitted on Canvas. Please upload a profile picture similar to the type used on your blaster card, so we can all get to know each other in this online format.

We use Piazza in the class for communicating with the instructor, TAs, and your classmates online.


Welcome to Computer Organization

We are going to make use of your programming skills to explore the simplest, yet most complex, of computer languages, assembly. Assembly is the bridge between software and hardware - the software/hardware interface - so it will show us how a CPU behaves, what compilers have to consider, and what memory-constrained devices have to deal with. These are critical skills in the current technological world of gaming, hacking, and big data.

Course Description

CSCI 341 covers the basic concepts of computer architecture and organization. Topics include machine level instructions and operating system calls used to write programs in assembly language, computer arithmetic, performance, processor design, pipelining techniques, caching, and the memory hierarchy. This course provides insight into the way computers operate at the hardware level.

Learning Outcomes

At the end of this course, students will be able to:

  1. Recognize and manipulate numbers stored in digital computers
  2. Utilize the RISC-V instruction set to translate snippets of C programs to assembly and vice-versa
  3. Describe the interface between the RISC-V instruction set and hardware
  4. Build a five-stage pipelined datapath from a single-cycle datapath to execute a selected set of RISC-V instructions
  5. Explain principle of locality and its relationship to memory hierarchy
  6. Measure CPU performance from IC, CPI, and CC Time

Textbook and Other Reading Materials

NOTE: the following resource is REQUIRED. we assign readings and have quizzes on the textbook.

Assessments

Reading quizzes: You will be completing a quiz before the first class each week to show an understanding of the material provided in the text; these activities show a basic understanding of the material and comprise 10% of your course grade. You will have 1 retake on the quiz, and the questions answered incorrectly will be shown once upon completion of the quiz.

Worksheets: You will have a worksheet provided each week; this is completed inside and outside of class, and can be worked on with your peers. These worksheets deepen your understanding of the course material, and are graded on effort and completeness (not correctness). Solutions are provided after the late window closes, for you to check your work. The worksheets are due the Monday of the week after, and comprise 10% of your course grade.

Homework will show a deeper comprehension of the material, giving you an opportunity to apply what you have learned in new scenarios not covered in the book or class. These will be topical questions or programming assignments. The programming assignments will help you develop your skills with assembly language, while the topical questions will further prepare you for the assessments made in the midterms and final exams as well as showing the ability apply the material learned. These will generally be due on Mondays, with some adjustments around school closures. Homework is an individual assignment, to be completed without collaboration with your peers. The homeworks comprise 20% of your course grade.

Hackathon is an activity that gives you an opportunity to stump your peers in assembly language. In groups, you will develop code and then take code from another group to unravel. This activity is graded on participation and effort as long as a baseline of code complexity is met. It is 5% of your grade.

Midterm and Final: The exams are comprehensive assessments giving you an opportunity to show that the material has been internalized and can be applied in time-limited situations. The midterm is 25% of your course grade, and the final exam is 30% of your course grade. The final exam has a programming portion released at the start of finals week, due at the end of finals week.

Grading Policy

The following percentages show how final grades will be calculated.

item percentage
reading quizzes 10%
worksheets 10%
homeworks 20%
hackathon 5%
midterm 25%
final exam 30%

Letter grades will be calculated based on the following intervals:

+ interval -
  A (93+) A– (93- to 90+)
B+ (90- to 87+) B (87- to 83+) B– (83- to 80+)
C+ (80- to 77+) C (77- to 73+) C– (73- to 70+)
D+ (70- to 67+) D (67- to 63+) D– (63- to 60+)
  F (60-)  

Coursework Return Policy

We aim to return on-time coursework with feedback and grades within 4 days of the due date if submitted on time. Reading quizzes are usually auto-graded, if manual re-grading is required it will be completed within 4 days of your request. We aim to return late coursework within 1 week of the final accept date. If outside events slow the return of coursework, students will be notified along with an expected return date.

If you do not understand from the feedback provided on your coursework how to improve your learning performance, please contact your instructor.

Expectations for Success

Mines Course Policies

Mines has put in place several policies related to course management. Those policies will be applied as appropriate to this class, and may impact existing policies. See the separate document provided detailing those.


Course Schedule

See separate file for tentative course schedule. This schedule is subject to change. Assignments are due the date they are listed unless a due date is given in parentheses.

Please check Canvas for any updates to this schedule.


Maintenance Clause

This syllabus is intended to give students guidance on this course this semester and will be followed as closely as possible. The instructor reserves the right to modify, supplement and make changes as the course needs arise. This syllabus is not a legal document; common sense rules always apply, e.g., no late assignments will be accepted after the solutions are discussed or available.