Course materials

CSC 241

Introduction to Computer Organization

Fall 2024

01 · Syllabus

Course information and policies

InstructorQixin Deng

Email[email protected]

OfficeGoodrich Hall 108

Office hoursM/W/F, 9:00 AM–5:00 PM; appointment required after 5:00 PM

Meeting timeT/Th, 9:45–11:00 AM

LocationHays Science 003

Course Description

This course introduces computer organization and architecture through C programming, MIPS assembly, memory systems, and digital components. Students connect high-level code to machine instructions while studying processors, cache, I/O, functional units, buses, and interconnects.

Reference Notes & Platforms

There is no required textbook. Course notes, CLion and CMake support C programming; MIPS tools support assembly practice; and Logisim supports computer-component design activities.

Course Goals

  • Develop proficiency with C control flow, recursion, functions, structures, encodings, and pointers.
  • Use assembly instructions for memory access, branching, functions, parameter passing, iteration, recursion, and low-level I/O.
  • Understand computer organization from logic gates and functional units through cache, interrupts, and buses.

Assignments

The number of exercises depends on course progress. Each includes programming questions and must be submitted on time; late submissions are not accepted.

Grading

Assignments constitute 50% and quizzes and exams constitute 50% of the course grade. Standard letter-grade thresholds begin with A at 93, A− at 90, and B+ at 87.

Class Rules

The classroom must remain respectful and free of discrimination, bullying, and other harmful conduct. Violations are addressed through course and college procedures.

4th Hour

Six C programming assignments provide six fourth-hour sessions, five assembly assignments provide five sessions, and two Logisim projects provide four sessions. Together they account for fifteen structured hours outside regular class meetings.

About AI

AI can be a useful assistant when used reasonably, but it must not replace a student’s thinking. Assignments must be completed independently. Students should understand and be able to reproduce and explain all submitted work; significant inconsistencies may require an in-person demonstration and may be reported under academic-integrity procedures.

02 · Contents

Course content

01

C Toolchain & Program Structure

CMake and CLion workflows, preprocessing, header files, compilation units, tokens, identifiers, constants, operators, and comments.

02

Types, Variables & Control Flow

Integral and floating-point representations, IEEE 754, casting, constants, conditional statements, loops, and loop-control statements.

03

Pointers, Functions & Scope

Pointer semantics and arithmetic, function declarations and calls, callbacks, variable arguments, storage duration, stack, heap, and global storage.

04

Arrays, Strings & Structures

One- and multidimensional arrays, strings, enumerations, structures, unions, bit fields, and data layout.

05

Input, Output & Memory

Formatted and character I/O, file operations, command-line arguments, copying memory, dynamic allocation, and undefined behavior.

06

Cache & Memory Hierarchy

Locality, cache lines, direct-mapped, set-associative and fully associative caches, multilevel caches, replacement policies, write policies, and coherence.

07

MIPS Architecture

RISC and CISC, datapaths, registers, the arithmetic logic unit, program counters, instruction formats, and the MIPS instruction-set architecture.

08

Assembly Fundamentals

Data sections, arrays, load/store operations, direct and indirect memory access, system calls, arithmetic, and bitwise instructions.

09

Branching & Iteration

Processor flags, conditional branches, loops, control-flow translation, loop unrolling, and low-level reasoning about C programs.

10

Procedures & the Stack

Parameter passing, return addresses, caller- and callee-saved registers, stack frames, subroutines, recursion, and heap allocation.

03 · Exam preparation

Exam requirements

Gentleman’s Rule

The student is expected to conduct himself, at all times, both on and off the campus, as a gentleman and a responsible citizen.

Exam Rules

  1. This is a closed-book exam with only a pen (no pencil) and exam paper on your desk. No calculators allowed. No outside aids or resources are allowed.
  2. Final exam will be 2 hours, other exams will be using regular class time. Please arrive on time. Late students will not be compensated for their time.
  3. You are responsible for the clarity of your own handwriting. If I cannot recognize your handwriting, you will lose points.
  4. All cell phones and other electronic devices must be turned off.
  5. If you need to use the bathroom during the exam, you need to put your cell phone on the front desk.
  6. You are not allowed to communicate with any other people (other than the professor) while taking this exam.
  7. You may not share, disseminate, or discuss these questions with any other student in another section of this course who has not taken the exam yet; doing so is considered academic dishonesty and will lead to nullification of exam grades.
  8. There will be no tolerance towards academic dishonesty, and cheating can and will lead to automatic failure from the class as well as a report to the Academic Integrity Committee.

Exam Commitments

I will complete this exam in a fair, honest, respectful, responsible, and trustworthy manner. This means that I will complete the exam as if the professor was watching my every action. I will act according to the professor’s instructions, and I will neither give nor receive any aid or assistance other than what is authorized. I know that the integrity of this exam and this class is up to me, and I pledge not to take any action that would break the trust of my classmates or professor, or undermine the fairness of this class.

Midterm PreparationDate:Location:+
Final Exam PreparationDate:Location:+

04 · Assignments

Practice questions

Open each assignment to work directly from the original C, assembly, cache, and computer-organization questions.

Assignment 01+

Loading questions…

Assignment 02+

Loading questions…

Assignment 03+

Loading questions…

Assignment 04+

Loading questions…

Assignment 05+

Loading questions…

Assignment 06+

Loading questions…

Assignment 07+

Loading questions…

Assignment 08+

Loading questions…

Assignment 09+

Loading questions…

Assignment 10+

Loading questions…

Assignment 11+

Loading questions…

Assignment 12+

Loading questions…

05 · Projects

Project materials