Term: Fall 2025

Instructor: Aline Normoyle

  • No office hours this week of Nov 24th

  • Midterm II will be during class on Dec 4th: 80 minutes. You may bring one cheat sheet. Study Guide

  • Final Project is due Sunday, Dec 14th, with milestones due Dec 11th (Thursday) and Dec 12th (Friday)

  • Welcome to computer organization!

Course Info

Welcome to CMSC 240: Principles of Computer Organization!

microcomputing 80s

This course studies the hierarchical design of modern digital computers. Combinatorial and sequential logic elements; construction of microprocessors; instruction sets; assembly language programming, compilers, and concepts of basic operating systems. Lectures cover the theoretical aspects of machine architecture. In laboratories, students will work hands-on with hardware. Over the semester, students will implement a virtual machine in C.

Meeting Times

Activity Location Time

Lecture

Park 336

Tuesday and Thursday 11:40 AM - 1:00 PM

Lab

Park 231

Thursdays 2:40 PM - 4:00 PM

Office Hours - Prof. Aline Normoyle

Zoom (See slack for details)

Friday 2-3 PM

Office Hours - Rebecca Lassman

Park 230/231

Thursdays 6-8 PM

Schedule

The syllabus may change during the semester. Please check here every week for updates on lecture content, worksheets, and assignments.

Week Date Agenda Resources

1

September 2, 4

Introductions, Hello C

  • Topics: Programming at the command line, Makefiles, From Java to C, strings, arrays, structs, function stack, basic pointers

  • Read: Dive Into Systems Chapter 1: From JAVA to C

  • Assignment 01: Due Friday, September 5th

  • Lab: SSH and Github setup

2

September 9, 11

Binary and Data Representations

  • Topics: number systems, integer/float/char binary formats, struct layouts, bit ops

  • Read: Dive Into Systems Chapter 4.1-4.6

  • Read: Dive into Systems GDB and Valgrind

  • Lab: Congrats to this week’s worksheet champions: Team 1195, TEAM_ER, and Team Intel Core i5

  • Assignment 02: Due Friday, September 19th

3

September 16, 18

Computer Architecture Overview, Hardware I

4

September 23, 25

Hardware II, More C/C++

  • Topics: Multiplexors, R-S Latches, the CPU revisited. Simple example architecture: Hack

  • Read: Chapter 2.1-2.8

  • Read: Dive Into Systems Chapter 5.1-5.6

  • Lab: Breadboard Adder/Xor

5

September 30, Oct 2

Hardware III

  • Topics: Hack hardware design, ALU, RAM

  • Read: Elements of Computing Systems Chapters 1-3

  • Lab: Breadboard Counter

6

October 7, 9

Hardware IV, Assembly

7

October 14, 16

Break

  • NO LECTURES, LABS, HOMEWORKS

8

October 21, 23

Midterm, CPU Design

  • Mapping machine instructions to control signals

  • Midterm 01: In-class Tuesday, October 21st (1.5 hrs)

  • Assignment 3B: Hardware simulator II Due Friday, October 31st

  • Lab: CPU and Computer design, Check-ins

9

October 28, 30

Assembler, Virtual Machine I

  • Topics: Assembler implementation: Parsing, symbol tables

  • Topics: Virtual machine: VM code specification, working with stack expressions and virtual memory segments

  • Read: Elements of Computing Systems, Chapter 6-7

  • Lab: Assembly to machine code translation, Check-ins

10

November 4, 6

Virtual Machine II

  • Read: Elements of Computing Systems, Chapter 8

  • Assignment 04: Assembler Due Friday, November 21st

  • Lab: Assembler check-ins

11

November 11, 13

High-level Language, Compiler I

  • Read: Elements of Computing Systems, Chapter 9, 10

  • Assignment 05: Virtual Machine: Due Friday, November 21st (with milestone deliverable on Nov 17)

  • Lab: From VM to assembly worksheet

12

November 18, 20

Compiler II

  • Topics: syntax analysis, code generation

  • Read: Elements of Computing Systems, Chapter 10-11

  • Lab: From VM to assembly worksheet

13

November 25, 27

Compiler II, Thanksgiving

  • Read: Elements of Computing Systems, Chapter 10-11

  • Final Project: Compiler and software: Due {ASST07_DUE}

    • Milestone 1: Demo of your high level demo is due Dec 11th (Thursday) in class/lab

    • Milestone 2: Tokenizing and parsing is due Dec 12th (Friday) at midnight

  • Thanksgiving: No Class or lab Thursday. No office hours

14

December 2, 4

Midterm II

  • NO CLASS TUESDAY Dec 4

  • Midterm 02, Thursday In-class Thursday, December 4th (80 min)

15

December 9, 11

Final Project

  • Final project check-ins and demos

Text and Tools

  • Dive into Systems by Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb. Available free online from Dive into Systems

  • Elements of Computing Systems by Noam Nisan and Shimon Schocken. Many chapters and material are available online from nand2tetris.org.

  • Github Account Please go to github.com and register. You will be using github to submit assignments.

  • Slack Please go to slack.com. Our workspace is BrynMawr-CS223-S25. You can ask questions and request one-on-one help over zoom using this course’s slack channel.

Grading Policies

All graded work will receive a grade, 4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7, 1.3, 1.0, or 0.0. At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:

25%

Oral Exam and Final Project

35%

Assignments

20%

Midterms

15%

Lab activities and checkins

5%

Attendance and participation

Late Policy

You may always request 1 late day for any assignment.

Academic Integrity

At Bryn Mawr, we assume students are trustworthy and work with honesty and integrity. Look here for information about Bryn Mawr’s Honor Code.. Midterms and the final will be closed book. Lab coding challenges will be open-book and closed-internet. Thus, you cannot use VS Code, internet browsers, and other programming aids. However, you can use the text book, Dive into Systems, the Linux Programming Manual (available with man), and your class notes. You may work with others and with online materials for assignments, but you will be expected to explain and reproduce your submitted assignment on your own.

Academic Accommodations

To receive an accommodation for a course activity (such as more time on quizzes and exams), you must have an Accommodation Letter from the Office of Student Disability Services and you need to contact us to work out the details of your accommodation at least two weeks prior to the activity. Forms can be emailed to me, the instructor.

You are also welcome to contact us privately to discuss your academic needs. However, all disability-related accommodations must be arranged, in advance, through Student Disability Services. Also note that accommodations are not retroactive and require advance notice to implement. More information can be obtained at the Access Services website. (http://www.brynmawr.edu/access-services/)

Academic support