CSEE 3827 Fundamentals of Computer Systems

Summer 2022

Course info

Fundamentals of Computer Systems is an introductory course covering the fundamental building blocks of modern computing devices. It is the first course in the Computer Engineering degree program, and is designed as a prerequisite to advanced courses in both computer hardware, like CSEE 4824: Computer Architecture, CSEE 4823: Advanced Logic Design, and CSEE4840: Embedded Systems, as well as low level computer softare like COMS 4118: Operating Systems.

The course is structured in two halves. The first focuses on digital logic design, while the second introduces a RISC assembly language.

We begin with an introduction to binary number systems. We then cover boolean logic, which forms the basis of the digital logic on which all computer systems are built. We will learn how to construct arithmetic operations, such as addition, using only boolean algebra. We then procede to introduce combinational and sequential logic, and finish the first half of the course by looking at finite state machines and their use in constructing hardware components.

In the second half of the course, we will look at the MIPS assembly language. We will look at how assembly interacts with a processors instruction set architecture (ISA), and the differences between reduced and complex instruction set architectures (RISC / CISC). We will design a pipelined microprocessor architecture and ISA from the building blocks discussed in the first half of the course. Finally, we will look at how the implementation and usage of modern processor caches.

Textbook

There is no required textbook for this course. However, here are some suggested reference materials:

Software

In the second half of the course, we will use a MIPS simulator called QTSpim. This software is freely available for download. Further information will be provided at a later date.

Discussion

We will be utilizing the Ed platform for this course.

Grading

Tentative: 5–6 Homework Assignments

Attendance

You are expected to attend all lectures, either in-person or virtually. Any material covered in class or in a homework is fair game for exams. All courses will be available in real time on Zoom, and recorded for asynchronous viewing or review.

Academic Honesty

Please read the following information carefully. Failure to abide by these policies may result in serious consequences, including homework or exam grades of 0 and referral to the Office of Student Conduct and Community Standards (SCCS).

Homeworks

All homework assignments are to be completed individually. You are encouraged to collaborate with others to work through the logic of a problem, but the solution you submit should be written entirely by you. Sharing your solution with others and rewriting from a preexisting solution both count as cheating.

Online references like StackOverflow are valuable tools for working out parts of a problem, and you are encouraged to explore the wealth of educational resources on the internet. However, apart from the obvious cheating example of finding whole solutions online, including any code snippets that you did not write without proper attribution counts as cheating. If you use code that you did not come up with yourself, you must include a full link to the reference, e.g. provide a link in your submission to the StackOverflow answer you relied on.

Furthermore, even if you find references online, if you do not understand the code that you are using, it will still count as academic misconduct. If you are quizzed on your submission and cannot demonstrate understanding, it will not be counted.

Your Work

The material for this course, including but not limited to lectures, examples, homeworks, and exams, is wholly owned by me and provided to you for educational use only.

If I find any material on GitHub, Chegg, etc, I will DMCA to have it taken down and pursue those responsible both legally and academically. Remember, grades can be retroactively changed and degrees can be(and have been) retroactively revoked for academic misconduct.

School Policies

In addition to this policy, the CS department’s academic honesty policy applies to this course. Please revisit your school’s standards for academic integrity:

COVID Related Information

For students who are required to isolate or quarantine, or are unable to attend in-person, classes will be simultaneously conducted on Zoom. Recordings of each class will be uploaded to the Video Library.

Campus Resources

The instructor is committed to promoting students' well being and advancing a diverse, inclusive and welcoming campus culture. He is aware that students may experience personal, social, or financial challenges, whether related or unrelated to their coursework, that may affect their health and academic performance. In addition, the ongoing Covid-19 pandemic and high levels of stress experienced by many Columbia students during the semester may affect their mental and physical health.

If you are in need of support, you are encouraged to reach out to your school’s adviser (e.g. CSA advising dean). If you feel comfortable notifying the instructor, he will make every effort to provide support and connect you to available campus resources.

If you or someone you know feels overwhelmed or suffers from depression or anxiety, please contact

Counseling and Psychological Services (CPS, Columbia) - 212–853–2878 Furman Counseling Center (Barnard) - 212–854–2092 For additional campus resources, see https://universitylife.columbia.edu/student-resources-directory

Please note that the instructor is required to make a report of any information relating to gender-based misconduct.

Course Recordings

Homework

Due Rubric Solutions

Schedule

Note that the following schedule is tentative. It will be updated as we go.

# Date Topic Assignments
1 M 5/23 (Remote)Introduction and Overview, Binary
2 W 5/25 (Remote) Boolean Logic
  M 5/30 No Class
3 W 6/1 Combinational Logic, Sequential Logic HW1
4 F 6/3 Sequential Logic
5 M 6/6 Finite State Machines HW2
6 W 6/8 Finite State Machines, Transistors HW1 Due
7 M 6/13 Memory
8 W 6/15 MIPS ISA
  M 6/20 No Class
9 W 6/22 MIPS Microarchitecture
10 F 6/24 MIPS Multicycle, MIPS Pipeline
11 M 6/27 MIPS Pipeline, Caches
12 W 6/29 Review / Overflow / Extras