Computer Organization and Systems
CS 1216
Monsoon 2022
General Information
Venue : AC04 - LT005
Time : Tuesday, Thursday, 10:10 am - 11:40 am
Instructor : Manu Awasthi (manu.awasthi@ashoka.edu.in)
TAs : Akshat Singh (akshat.singh_asp23), Bhavye Jain (bhavye.jain_ug23), Drumil Deliwala (drumil.deliwala_ug23), Eryn Reva Wali (eryn.wali_ug23), Gautam Yajaman (gautam.yajaman_ug23), Nishtha Das (nishtha.das_ug23)
Contacting Course staff
The recommended method for contacting course staff is through the email alias cs1216-staff@googlegroups.com. We will be filtering emails regarding the course based on this email alias. Individual emails to course staff will not be answered.
Textbooks and Readings
Computer Organization and Design -- The Hardware/Software Interface -- Fifth Edition, David Patterson and John Hennessy. This book will be referred to as COD-PH
Computer Architecture - A quantitative Approach - 5th Edition, John Hennessy and David Patterson. This book will be referred to as CA-HP
More readings to be assigned as the semester progresses. These will be updated on the Readings section for that lecture, below.
Online Learning Management System
We will be using Google Classroom as the Learning Management System (LMS) for this course. You will automatically be added to the Google Classroom for this course via Ashoka AMS. All the course material will be made available through the either Google Classroom, or as links on this webpage.
We will be accepting student submissions only through Google Classroom. No email submissions will be considered.
Office Hours
Instructor: After class
TAs:
Class Policies
The following is a tentative guideline for the grading policy and may undergo a change.
Exams : 55%
There will be a mid term, and an end-term exam. The weights of individual exams will be made available soon.
Assignments - 35%
An individual assignment will be due every two weeks or so; approximately 8 assignments will be handed out in all over the semester. Assignments might involve programming.
Quizzes: 10%
There will be continuous evaluation throughout the semester in form of surprise quizzes. Each quiz will have an instructor assigned weightage. It is not necessary that all quizzes will have the same weightage.
Submission Policies
We know you're juggling multiple activities and the assignment or other assigned deadlines may not always be favorable. In order to meet deadlines, it would be best for you to start on your assignments as soon as they are handed out. Starting to work on an assignment on the day of the submission is a terrible idea. Historically, this has resulted in scores that are below average performance, and creates conditions that might instigate you to plagiarise. The latter is something that you should definitely avoid, at all costs.
You are expected to submit the assignments before the assigned deadline. We will enforce the following policies:
Late submissions are possible. An assignment is counted as late, as soon as the clock for the assignment submission rolls over. Late submissions will be accounted for at a day granularity. For example, if the deadline is 11:59 pm, and you submit your assignment at 12:02 am, your submission will be counted as a day late.
For every extra day that you take to submit, the assignment will lose 25% of its value. Once the assignment loses 100% of its value, it will not be graded.
Any emails for asking extensions will automatically result in reduction of 5% of points that you have received for the assignment. The request will also be denied, except for genuine, medical emergencies. Please consider extension requests very carefully before you send them out to course staff.
Cheating and Plagiarism
Most assignments will be individual centric, unless explicitly mentioned otherwise. This means that you are allowed to discuss the problems with your classmates. However, any work that you submit (code or written assignments) should be your own, and should be done in an individual setting. The overleaf template for the assignments has a field for collaborators. You should use that to list your classmates whom you discussed the assignment problems with. If you have any, however small, questions about what counts as plagiarism (and what doesn't) contact the course staff. "But I didn't know <insert-the-thing-you-did> was also counted as plagiarism" is not an excuse that will be tolerated.
CS1216 has a zero tolerance for cheating, even for assignments.
NOTE: Any evidence of academic integrity violation / plagiarism in either the assignments, quizzes or exams will result in an F grade for the entire course, no exceptions. In addition, you will be reported to the OAA for academic integrity violation.
Attendance
There is no mandatory attendance. However, you are expected to attend all the lectures. There will be material covered in class that is not present in textbooks. In addition, some portion of the lectures will be used for discussions. It is in your best interests to attend the lectures as they happen, and get your questions answered during the discussions, rather than waiting till the end of the semester.
The instructor reserves the right to cold call on any student who is attending the class to elicit student participation. You don't necessarily need to provide a correct answer to the question being posed, but it will be expected that everyone at least attempt to provide an answer.
Laptop/Device Use During In Person Classes
We will follow Prof. Shriram Krishnamurthi's policy on screen usage during class.
TLDR; screens are a strict no-no unless explicitly permitted. If you use electronic devices in the classroom, you'll be asked to leave.
Assignment Submission
All assignments will have to be submitted electronically through Google Classroom for the course.
All assignments have to be properly formatted in the prescribed format, using LaTeX typesetting system. Using this system has two benefits. First, you get to learn LaTeX, which is a good skill to have for every CS major. Additionally, it makes grading easier for the TAs and the instructor. Remember, we cannot grade what we cannot read. There are a number of browser-based tools that make writing documents in LaTeX relatively painless. We will be using one such tool - Overleaf. A template for assignment submissions has been created for your benefit. Please use this as the base for submitting all assignments, with relevant changes made for each submission.
Tools and Documentation
MARS : MIPS Assembler and Runtime Simulator. (Documentation, Better Documentation)
Interactive introduction to Latex.
Overleaf template to be used for assignments. (HT to this original version)
Resources for learning C
Awesome C Github (many, many tutorial links)
100 sec refresher on C (very short video)
Pointers in C (short video)
C Tutorial for beginners (long video)
C Programming Language from Harvard's CS50 Course (long video)
Acknowledgements
The instructor gratefully acknowledges instruction material (slides, figures, animations etc.) that have been created by a number of instructors for similar courses around the world, including but not limited to Rajeev Balasubramonian, Yale Patt, John Kubiatowicz, Onur Mutlu, Krste Asanovic, Mattan Erez, Arkaprava Basu and Arvind.