CS 201 – Fall’23

CSCI-UA.201 Computer Systems Organization

2023 Fall Syllabus and Schedule

Course Number: CSCI-UA.0201

Course Title: Computer Systems Organization

Section: 007

Course Type: In-person

Recitation Sections: 008

(F 2-3.15pm.  19 University Pl Room 102)

Semester: Fall 2023

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 (starting on September 12, 2023):

            Tuesday (12.30pm-1.30pm) in-person

            Thursday (2pm-2.30) online (check announcements for details)

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

This is a tentative list of the 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%): mini exam (5%), midterm exam (20%) 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 willnot 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         93-100

    A-       90-92

    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
09/05 #1 Syllabus check

Introduction to Unix

Introduction to C

 
09/07 #2 Basic Unix/Linux commands

C basics

 
09/12 #3 C cont. pointers, memory addresses, dereferencing Recitations start
09/14 #4 Continue with pointers in C  
09/19 #5 Continue with pointers in C  
09/21 #6 strings in C = null terminated arrays of characters  
09/26 #7 Structures  
09/28 #8 Dynamic memory allocation.  
10/03 #9 Defining data structures in C.  
10/05 #10 Data structures in C cont.  
10/10   LEGISLATIVE DAY – NO CLASS  
10/12 #11 Review  
10/17 #12 MINI EXAM  
10/19 #13 Two’s complements and binary level of representing integer data types in C.  
10/24 #14 Data representation: more on integer representation, casting, truncating, overflow due to addition and multiplication.

Data representation: floating point numbers, IEEE 754 encoding

Machine level programming: arithmetic and logical operations.

 
10/26 #15 Machine level programming: arithmetic and logical operations.  
10/31 #16 Control structures.  
11/02 #17 Control structures  
11/07 #18 Function calls  
11/09 #19 Arrays, structures and other things in assembly.  
11/14 #20 memory Hierarchy  
11/16 #21 memory Hierarchy  
11/21 #22 Cache memories-how to improve cache performance of code.  
11/23   THANKSGIVING RECESS – NO CLASS  
11/28 #23 Midterm Exam  
11/30 #24 Dynamic memory allocators  
12/05 #25 Dynamic memory allocators  
12/07 #26 Processes: what are they, program vs. process, CPU’s interaction with processes, kernel and its role.  
12/12 #27 Continue processes: creating, terminating, process ID and parent process ID.  
12/14 #28 Review