CS 201 – Spring ’24

CSCI-UA.201 Computer Systems Organization

2024 Spring Syllabus and Schedule

Course Number: CSCI-UA.0201

Course Title: Computer Systems Organization

Section: 007 (3:30 PM – 4:45 PM Tu Th
31 Washington Pl (Silver Ctr) Room 206 Loc: Washington Square)

Recitation Sections: 008 (08:00 AM – 09:15 AM F

60 Fifth Ave Room 150 Loc: Washington Square)

Course Description

This course covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

Pre-requisites: CSCI.UA.102 data Structures

Office Hours: Wednesdays, 11.30-12.30 in-person

Please send me an email for appointment if this time is not good for you.

You are highly encouraged to visit the instructor during office hours without notice. Prepare for office hours by coming up with focused and targeted questions. In case there is a line of students waiting, the instructor will limit the meeting to a maximum of 5 minutes per student. You are also encouraged to meet with tutors. The schedule of the tutors will be uploaded on Brightspace and I will be sending emails about the schedule, separately.

Textbook:

Topics

    • C: basic types, control flow
    • C: pointers and arrays
    • Bits, bytes, ints, floats
    • C type conversion
    • Machine programming
    • System hardware
    • Memory hierarchy
    • Caching
    • Exceptions and processes
    • Virtual memory
    • Dynamic memory allocation
    • Multitasking and signals (optional)
    • System-level I/O (optional)
    • Concurrent programming (optional)
    • Linking (optional)

Course materials and announcements will be shared in Brightspace.

Assignments

The assignments will be sent out via the Brightspace and the course website.

HW Submission: You will be asked to send your assignments via Brightspace. While you send your files (source codes, zip files, etc.), please use appropriate file names. For every 24 hours that an assignment is late, we will apply a 10% penalty on the grade, up to a maximum penalty of 30%. After 72 hours, we will no longer accept the assignment.

Recitations: Recitations are available for Q&A sessions and extra activities. Attending the recitations is strongly suggested.

Grading

Please note that this grading policy is subject to change at any time without notice. If a change occurs, a new version will be uploaded on NYU Brightspace.

 Final grades for the course will be determined using the following weights:

  • exams (65%): MT1 (10%), MT2 (15%) and the final (40%)
  • projects (25% total)
  • recitation activities (5% total)
    recitation activities are completed during recitations – you will not get credit for these unless you are in the recitation session
  • quizzes (5% total)
    pop-quizzes will be given during lectures and will not be announced

The missed quizzes and recitation activities will not be made up.

Missing an exam: There will be no make-up exams. The only exception to this rule is for students who have a valid medical emergency. These students need to talk to the instructor as soon as possible.

The following scale will be followed when assigning the final grade and the scale is subject to change accordingly by the instructor at any time during the semester.

      •     A         95-100
      •     A-       90-94
      •     B+      87-89
      •     B         84-86
      •     B-        80-83
      •     C+      76-79
      •     C         72-75
      •     C-       70-71
      •     D+      67-69
      •     D        65-66
      •     F         below 65

The grade of Incomplete is reserved for students who, for legitimate and documented reason, miss the final exam. The grade of Incomplete will not be given to student who started falling behind in class. Those students can withdraw from the class.

Date Class Materials Covered Notes
01/23 #1
    • Syllabus check
    • Introduction to Unix
    • Introduction to C
Recitations start
01/25 #2
    • Basic Unix/Linux commands
    • C basics
 
01/30 #3 C pointers, memory addresses, dereferencing  
02/01 #4 Continue with pointers in C  
02/06 #5 Continue with pointers in C Assignment 1 is given
02/08 #6 strings in C = null terminated arrays of characters  
02/13 #7 Structures Assignment 1 due

Quiz 1

02/15 #8 Dynamic memory allocation.  
02/20 #9 Defining data structures in C.  
02/22 #10 Data structures in C cont. Assignment 2 is given
02/27 #11 Two’s complements and binary level of representing integer data types in C.  
02/29 #12
  • Data representation: more on integer representation, casting, truncating, overflow due to addition and multiplication.
  • Data representation: floating point numbers, IEEE 754 encoding
Quiz 2
03/05 #13 Review  
03/07 #14 MT1 Assignment 2 due
03/12 #15 Machine level programming: arithmetic and logical operations. Assignment 3 is given
03/14 #16 Control structures. Quiz 3
03/19   SPRING BREAK  
03/21   SPRING BREAK  
03/26 #17 Control structures Assignment 3 due
03/28 #18 Function calls  
04/02 #19 Arrays, structures and other things in assembly.  
04/04 #20 memory Hierarchy  
04/09 #21 memory Hierarchy Assignment 4 is given
04/11 #22 Cache memories-how to improve cache performance of code. Quiz 4
04/16 #23 Dynamic memory allocators  
04/18 #24 MT2 Assignment 5 is given
04/23 #25 Processes: what are they, program vs. process, CPU’s interaction with processes, kernel and its role. Assignment 4 due
04/25 #26 Continue processes: creating, terminating, process ID and parent process ID. Quiz 5
04/30 #27 Continue processes  
05/02 #28 Review Assignment 5 due