CS 240 Laboratory

Instructor: Jean Herbst
Office: L134, L037 Science Center
Email: jherbst@wellesley.edu
Office Hours: Monday, 5:00PM - 6:00PM via Zoom
Tuesday, 1:00PM - 2:30PM in L037
Wednesday, 4:30PM - 6:00 PM in L037
and by appointment

Introduction
In CS 240 Laboratory, students learn about the foundations of computer systems by experimenting with software and hardware. Lab material coordinates with lecture topics, and will often introduce the student to strategies and tools required for class assignments.

Schedule
Lab is held in L037 in the Science Center. Office hours are also held there (when in-person) and/or through Zoom
Lab section 01 meets Tuesday 09:30 AM - 12:30 PM,
Lab section 02 meets Wednesday 09:30 AM - 12:30 PM,
Lab section 03 meets Wednesday 1:30 PM - 4:30 PM.
Requirements
Weekly attendance of class and completion of lab reports and assignments is required. The lab is designed to be a 3-hour experience. Preparatory activities and assignments for lab will regularly be assigned, and can be expected to require additional time outside lab each week.

If you must miss lab because of illness or other valid reason, you must notify the instructor prior to the missed lab and schedule a time to make up the lab. The make-up must occur before the next lab meeting. If possible, you should plan to attend or at least start the make-up during one of the other lab periods, so that the instructor is present.

Each week, a lab assignment will be given, to be completed and submitted prior to lab. The lab assignment gives you additional practice for the lab material already covered and/or prepares you for upcoming lab exercises.

Lab assignments are due at the beginning of lab. These assignments will not be accepted late, and will be graded.

A lab report is also due at the end of class each week, describing results of the experiments. Reports should include:

  • The answers to any questions posed in the laboratory exercises,
  • Graphs, waveforms, circuit diagrams,programs, etc., as specified in the laboratory exercises, and
  • Observations and explanations, when relevant (especially when your results do not match those expected).

Partners will submit a single lab report electronically by sharing a Google document with their partner and the lab instructor.

Partners will be assigned by the instructor, and will be different each week. Respectful and collaborative behavior is expected. Partners will work together and discuss results for each lab exercise (do not divide the exercises between partners, or work independently to complete the exercises separately). Use a single screen (with the partners switching driving periodically). Complete as many of the exercises as possible, but don't be concerned about not finishing all of them; the most crucial work is at the beginning of lab, and everyone will have time to complete that. Although some labs are shorter than others (and may be completed in less than 3 hours), It is not accpeptable to try to get through the lab quickly to be able to leave early. If one partner needs more time than the other to fully understand the work, please do not rush. Being patient and assisting a partner is an opportunity to be a learning facilitator (which is a real-life skill, and part of what students will get out of this lab).

Grading
As stated in the syllabus, the laboratory accounts for 15% of your grade in the course.

Completing all labs is mandatory.

Your grade will be based on your lab assignments and lab reports. Each lab is worth 100 points. For labs in which an assignment is given, 30 of the 100 points will be for the lab assignment, and 70 will be for the lab report. Lab assignments will be graded for correctness, and must be submitted on time to receive credit. If no lab assignment is given, the laboratory report will be worth the full 100 points.


Lab 1: Transistors to Gates

Assignment Watch this playlist of three videos about computing history and basic electronic building blocks for digital computation.

Notes

Exercises


Lab 2: Data as Bits

Assignment Also, hand in a hardcopy in lab of your answers from lecture Assignment Zero for the "Make Nothing from Something" section ( solutions to some simple bit puzzles).

Notes

Exercises


Lab 3: Combinational and Arithmetic Logic

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 4: ALU and Sequential Logic

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Overview of Notes

Exercises


Lab 5: Processor Datapath

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 6: Pointers and Arrays in C

There is no separate written assignment for Lab 6.

Notes

Exercises


Lab 7: Pointers and Arrays in C - continued

Assignment Please hand in a hardcopy of your solutions to Exercise 0 from the lab exercises.

Notes

Exercises


Lab 8: X86 Launch

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 9: Call Stack

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 10: Buffer Launch

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 11: x86 Structures and Programming

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 12: Malloc Launch

Assignment Please hand in a hardcopy of your solutions at the beginning of lab.

Notes

Exercises


Lab 13:Processes

Notes

Exercises