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)
- Jack Carmichael jcarmichael (at) mines (dot) edu
Office Hours: TBD - David Esposito davidesposito (at) mines (dot) edu
Office Hours: TBD - Mitchell Watkins watkins (at) mines (dot) edu
Office Hours: TBD
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
- Internet connection; A reliable PC; Web browser for Canvas & Piazza; Zoom; Java (to run RARS and RIPES simulators). I also recommend VLC to watch downloaded videos, and installing Canvas & Piazza on your phone to get notifications.
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:
- Recognize and manipulate numbers stored in digital computers
- Utilize the RISC-V instruction set to translate snippets of C programs to assembly and vice-versa
- Describe the interface between the RISC-V instruction set and hardware
- Build a five-stage pipelined datapath from a single-cycle datapath to execute a selected set of RISC-V instructions
- Explain principle of locality and its relationship to memory hierarchy
- 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.
-
Computer Organization and Design: RISC-V Edition 2nd edition, Pattersen and Hennessy. ISBN 978-0-12-820331-6.
-
Additional resources will be provided in the Canvas course shell.
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
-
You are expected to engage in all course activities, tasks, and assignment as an emerging professional. The Mines Academic Integrity Policy and CS@Mines Collaboration Policies form a core part of your expected ethical behavior. Make sure you are behaving with the same level of professionalism that would be expected at a future full-time position. My general rule of thumb is: informal is acceptable, but disrespectful is not. For example, you can address Prof. Amelia Read as Amelia, Prof. Read, or Miss Read, but do not address any of us as “Hey”.
-
In addition to actively participating during the class time each week, you are expected to spend 8 to 10 hours on this course each week outside of class. Out-of-class activities include active reading, worksheets, homework, programming assignments, and exams. Examine your weekly schedule and plan where you will be working on CSCI 341: block off class times and sufficient time to complete reading activities, quizzes, homework, and exams. Time management is a critical skill for success in this class, further studies, and professional work.
-
Reliable internet and computer access are important; if your access is spotty, develop a backup plan to ensure you can complete and submit work on time.
-
All quizzes, worksheets, and homeworks need to be turned in by the dates and times they are due. Canvas submissions (quiz, worksheet and homework) must be completed by the Canvas due date/time; if Canvas marks it as late, then it is late. Early submission is permitted.
-
Reading quizzes are not accepted late without arrangement prior to the due date, or as soon as possible if there are extenuating circumstances preventing prior arrangement.
-
A 10% penalty per day (or part of a day) will be applied to worksheets and homework submitted late. Homework and worksheets will not be accepted more than 1 week late.
-
If you have an excused absence for pre-planned activities on due dates or in the late window, those due assignments must be turned in before the due date.
-
Other excused absences must be discussed with the instructor and a plan of action defined prior to the due date. This may include an adjusted due date, an adjusted late penalty, or an adjusted assignment, at the discretion of the instructor to ensure course expectations, requirements, and outcomes are met.
-
It is your responsibility to check your submissions on Canvas and ensure the files are not corrupt and are gradable. If you turn in something that the instructor/TAs cannot open, is for a different class, or is not in the correct format, that is an automatic 0 on the assignment.
-
If you are absent, you are responsible for determining what work was missed and for putting forth a good faith effort to review the material. Once the material is reviewed, bring questions to the instructor and TAs as quickly as possible. The material in this class builds on itself from week to week, so staying on track and catching up quickly is important for your success.
-
Be proactive and communicate your course-related concerns and needs to your instructor in a timely manner.
-
Be aware and follow the university’s code of conduct.
-
CS@Mines takes academic integrity seriously. The penalty for violating academic integrity will be determined by the instructor on a case-by-case basis. Be aware of the CS@Mines policy on collaboration - individual work does not permit collaboration. We do not want to see any academic dishonesty in this class! Seek help before this becomes a possibility for you. Note that no sharing of actual work/answers/code on a quiz, homework or programming assignment is permitted by the collaboration policy or this class, unless specifically stated otherwise in the assignment description. Only worksheets permit open collaboration.
-
For CSCI 341, we also apply these collaboration items for individual work (reading quizzes, homework/programming assignments, and exams):
-
You are encouraged to discuss ideas around assignments with other students in the class, but do not share answers or code in whole or in part.
-
If you discuss an assignment with anyone (not counting instructors/mentors), you must list their names in your submitted assignment AND provide a brief summary of the discussion, including its benefit to you/impact on your submitted work.
-
You are not allowed to give answers/code you have developed to another student NOR copy answers/code created by another person (student or otherwise).
-
Any discussion with another person about your answers/code (or theirs) is subject to the empty hands policy, which means you leave the discussion without any record - electronic, mechanical or otherwise - of the discussion.
-
Any material from any outside source, such as books, projects, and in particular, from the Web, should be properly referenced. Such sources should not be directly quoted/used in your answers or code - your work needs to be your own, to develop your problem solving and design skills.
-
Student groups and peer reviewers formed for the purpose of worksheets or the Hackation are permitted to share answers/code as described in the assignment or exam within the group, but otherwise the items of the Collaboration Policy and these items apply.
-
If you are aware of students violating this policy, you are encouraged to inform the instructor or course coordinator.
-
Violating this policy will be treated as an academic misconduct for all students involved (both the provider(s) and the receiver(s) of answers).
-
-
NOTE: All issues of misconduct are reported to the Dean of Students. Academic misconduct may result in course failure for all students involved and an entry on your school record.
-
Prepare for a comprehensive final exam.
-
No accommodations will be made for exams unless there is an excused absence.
-
Exams are scheduled in the common exam schedule in the weeks noted in the schedule at the end of this syllabus. Make your travel plans outside these weeks.
-
Be active and physically take notes/write questions when participating in class; the notes provided are not comprehensive but may be useful for taking notes on.
-
You are expected to be courteous during class, especially during in-class activities.
-
Use Piazza for CSCI 341 questions outside of class. First do a quick search to see if your question has already been addressed. If not found, go ahead and post your question so that the instructor, TAs, or another student can address it. Do not post your own work that you plan to submit publicly on Piazza, or request solutions to assignments. If you are unsure, submit it privately to the Instructors on Piazza to share it with just the instructors and TAs.
-
Use email, a private message on Piazza, or office hours if you wish to contact your instructor about your grade, an excused absence, or other matter not appropriate to share with the class as a whole. Your instructor will return messages within 24 hours during the school week, possibly longer on the weekends or holidays.
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.
-
please seek help from the resources Mines provides if you are in need; it is there for you, we are here for you!
-
respect your peers, TAs, and instructors - we all want to succeed at what we do, and you don’t know what those around you may be dealing with outside of class
-
let us know if your needs are not being met, and seek accommodation if needed
-
respect the OreDigger Promise and the Mines Student Code of Conduct to support Mines’ reputation as well as your own
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.