Syllabus
Course Description
This course explores how computer software interacts with the physical hardware of computing devices. You will learn:
- Assembly Language Programming: Writing and interpreting the low-level CPU assembly language of MIPS processors.
- Digital Logic: The basic logic and hardware gates that carry out the CPU instructions at the nanoscale
- Computer Organization: Design and tradeoffs of CPU architecture, with special emphasis on MIPS.
- C Programming: A high level language which still exposes a lot of control over lower-level features like memory management.
Learning Objectives
At the end of this course, students should be able to:
- Translate programs written in a high-level language such as Python, Java, or C to an assembly language,
- Write simple computer programs directly in an assembly language,
- Explain how assembly instructions are encoded in binary,
- Explain how assembly instructions are executed by CPUs,
- Construct sequential logic circuits using digital logic gates and explain the basic components and design principles of modern computer architecture.
- Write basic C programs that utilize pointers and memory management
Textbook
The textbook for the course is provided for free by Cowles Library in an electronic format. The text we will be using is:
- Computer Organization and Design (COD for short)
Revised 4th Edition
David Patterson and John Hennessy, 2011.
This is a classic, award-winning textbook. We will be frequently referring to it throughout the course.
Textbook content related to in-class lectures and activities will be linked directly to the corresponding chapter of the text on the Content page. If you have trouble accessing the textbook, please reach out to your instructor as soon as possible.
Activities / Grading
Your grade in this course is determined by:
Assignments | 60% |
Exams | 40% |
The grading scale for the course is as follows.
A | 93–100% | C+ | 77–80% |
A- | 90–93% | C | 73–77% |
B+ | 87–90% | C- | 70–73% |
B | 83–87% | D | 60–70% |
B- | 80–83% | F | 0–60% |
Grades will be posted on the course Blackboard page.
Exams
There are four exams. The tentative due date for exams is as follows:
- Exam 1:
Tuesday, September 24thThursday, September 24th (Week 5) - Exam 2: Tuesday, October 22th (Week 9)
- Exam 3:
Tuesday, November 19thTuesday, November 26th (Week 14) - Exam 4: December 10/12th (Week 16 - Regularly Scheduled Finals Time)
Exams may be done asynchronously - meaning you will take them on your own and submit through Blackboard.
You will be expected to complete all exams individually without assistance from any other person or any unauthorized resource.
Assignments
Assignments will be given frequently - sometimes even twice per week (though on average closer to one per week). Assignments will be related to in-class activities and will be how you demonstrate that you are learning the material on a day-to-day basis. You can find the due dates on the Assignments page and the Content page - both of which will be updated throughout the semester.
Each assignment will be with either 4 or 8 points depending on the amount of work involved, but they will both be graded based on the same basic rubric:
- 100%: submission is complete and correct, addressing all requirements given in the assignment document
- 75%: significant progress towards a solution to the assignment problem(s) has been made; though it may not be entirely complete or correct
- 50%: an attempt at the assigned problem(s) has been made that demonstrates serious effort was made in trying to understand the material and/or apply concepts in question
- 25%: the submission contains evidence of completion of work related to the assignment (such as solutions to in-class, non-graded exercises leading up to the assignment)
Some assignments will be submitted via a hand-in form on Blackboard, and some may be done with pen and paper where you will be required to hand in a physical copy.
Assignment collaboration policy
Assignment work my be done in collaboration with other students in class. However, you may not copy others’ code or solutions - collaborating means that you are actively engaged in the entire problem-solving process, not merely being assisted by another student who has already completed that portion of the assignment. Each student is expected write up and submit all of their own work individually, and indicate the names of any collaborators they worked with.
In order to avoid the attempt to copy, you may not look at work that another student has completed but you have not, including students from previous semesters of the course.
AI assistance policy
You may use AI tools like ChatGPT to help you with work you submit for a grade under the following conditions.
- You may not pass off AI-generated content as your own work. Be open and transparent about all sources.
- You must include a transcript of your entire interaction with the AI related to the assignment (even parts that you may not have used). You can either give a shared link to the chat transcript in your code comments (or submission comments) or include it in another attached document where you copy/paste/screenshot the chat.
- You must include at least two written paragraphs explaining what you learned and how you will use that in the future. These can be in code/submission comments or a separate attached document. If evidence of learning is not sufficient, you may not get full credit.
Good ways to approach the AI:
- Withhold information about the overall goals from the AI. Isolate invidual things you need help with and ask about those.
- Provide code you have written that you need help debugging or understanding.
Things you should avoid:
- avoid directly ask for solutions to the assignment
- avoid pasting (or paraphrasing) parts of the assignment instructions/questions/tasks
Course Policies
Attendance and Class Delivery Mode
This class will be delivered in person, and your attendance is extremely important for your learning. You are expected to attend unless you have a good reason. Any accommodations for remote participation should only be used with good reason.
I will attempt to record audio and screen capture of most class periods and post them to the Blackboard Panopto tool. These are provided as a courtesy for your reference, but they will not be a substitute for the in-class experience (you may miss things written on the board, activities done in groups, etc.)
If the university or instructor determines it is necessary to switch to an online-only delivery mode, either temporarily (e.g., due to illness of the instructor) or permanently (e.g., a prolonged COVID outbreak on campus), arrangements will be communicated via an announcement on the Blackboard page and/or email.
What to do if you need to work remotely
If you need to miss an in-person class because of illness or other reasons, you are expected to use the resources on the course website and Blackboard to stay caught up. Use the class slides, videos, and textbook; and continue working through in-class exercises, assignments, exams, etc.
If, for some good reason, you require a prolonged absence, please communicate with the instructor to make arrangements.
Deadlines
Extensions to due dates need to be requested and approved before the item is due, so make sure to communicate with the instructor about exceptional circumstances that may require special accommodations.
Accommodations for Students with Disabilities
I will be happy to discuss any academic accommodations needed for students with disabilities. However, any student seeking accommodation must coordinate them with the Access and Success office before the accommodations are needed. No retroactive accommodations will be made.
Academic Integrity
Drake University has high standards for academic integrity, and you are expected to read the Academic Dishonesty Policy from the College of Arts and Sciences.
Below is a particularly relevant excerpt from the statement:
Academic dishonesty is an all encompassing term involving any activity that seeks to gain credit for work one has not done or to deliberately damage or destroy the work of others. Academic dishonesty includes, but is not limited to, plagiarism, cheating, fabrication, and knowingly helping another to commit an act of academic dishonesty.
Below are some examples of how Drake’s policy applies to this course:
- You may discuss concepts described in the readings or during class with anyone.
- You may collaborate with other students in the class on assignments as described in the Assignment Collaboration Policy given above
- If you use an AI tool like ChatGPT to help you complete something you turn in for a grade, you must follow the AI Assistance Policy given above
- You are encouraged to seek out resources for help in understanding concepts when completing coursework. However, there is a big difference between seeking outside resources for help in understanding (which is good!) and searching for solutions (which is bad). Looking for solutions to an assignment defeats the purpose of the assignment and is not acceptable even if you write up the solution independently.
- All the work you submit must be entirely your own or you must specifically acknowledge and attribute any contribution or assistance from others or any other source that you used The suggested acknowledgment format is: “[Source X] helped me to do [thing Y] by [explaining Z].”
- You are responsible for safeguarding your work from being copied by others.
Getting Help
Instructor
Feel free to reach out to me at any time. The quickest way to get a hold of me is to message me on Microsoft Teams.
Office Hours
Schedule in Calendly the day before or drop in
M 9:30am-12:30pm
Th 2:00pm-4:00pm in Collier-Scripps 327.
NOTE: If you cannot make any of the times listed, feel free to message me on Microsoft Teams or send me an email to make other arrangements.
Tutoring
We may have some tutors available who can assist with this class. For more information, see the Tutoring page.
Academic Success Resources
Check out the Academic Success website. It includes a page for Success Toolkit with excellent tips for management classwork.