Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


COMPUTER SYSTEMS ORGANIZATION

Spring 2022

CSCI-UA.0201-007


 

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 will be both in assembly language and other languages. After this course, you should be able to understand what happens under the hood when your computer executes programs. You will be able to visualize the big picture that  shows how software and hardware interact.

REQUIRED TEXTBOOK

Computer Systems: A Programmer's Perspective

By Randal Bryant and David O'Hallaron

Pearson; ISBN- 10: 013409266X; ISBN- 13: 978-0134092669

3rd Edition (03/15)

RECOMMENDED TEXTBOOKS

The following book is not required but recommended to learn C programming:

 

The C programming language

By Brian W Kernighan and Dennis Ritchie

Prentice Hall; ISBN- 10: 0131103628; ISBN- 13: 978-01311103627

2nd Edition (04/88)

PREREQUISITES

Students enrolling in this course are expected to have taken CSCI-UA.102 (i.e., Data Structures) and passed the course with a grade of C or better. You are expected to know and remember the material from CSCI.UA.0101 and CSCI.UA.0102 courses.

COURSE TOPICS

The following topics are covered in this course:

1.          C PROGRAMMING LANGUAGE


•    Procedural way of thinking

•    Data structure and control

•    Bitwise operations

•    Pointers

•    Data Presentation

•    Signed and unsigned numbers

•    Two’s complement

•    Addition/subtraction of signed and unsigned numbers

•    IEEE 754 floating point presentation

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

2. x86_64 ASSEMBLY LANGUAGE

•    Do you really need to learn assembly?

•    CISC vs, RISC philosophy

•    Evolution of processors from 8-bit to 64-bit

•    Data movement

•    Arithmetic/logic instructions

•    Control instructions

•    From C to assembly

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

3. LINKING

 

•    The big picture from compilation to execution

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

4. ARCHITECTURE

 

•    How do microprocessors work?

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

5. MEMORY SYSTEM

 

•    A quick glimpse on Virtual Memory

•    SRAM vs DRAM technologies

•    The concept of caching

•    Cache hierarchy

•    How to write cache friendly programs?


READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

6.          DYNAMIC MEMORY ALLOCATION

 

•    Main algorithms ofdynamic memory allocation

•    Managed vs unmanaged languages

 

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

7.          PROCESSES and CONCURRENCY (time permitting)

 

•    Process vs thread

•    How to spawn several processes and control them

 

READINGS:   Selected readings assigned in class

Handouts posted on the course Web site

 

COURSE READINGS

Assigned readings for the course will be from the textbook, recommended book, and other suggested sources.

ASSIGNMENTS

•    Lab and homework assignments completion will be required.

•    Quizzes may be administered.

•    All exams will be conducted in class.

GRADING POLICY

•    20% Lab/Project Assignments (projects will require significant amount of code in C and assembly and corresponding solutions will need to be submitted electronically via NYU classes by the deadline indicated)

•     10% Homework Assignments

•    5%  Recitation Activities (activities will be completed during recitations; credit will only be given to students attending the recitations and the two lowest recitation scores will be dropped at the end of the semester)

•    5%   Quizzes/Online Tests (quizzes may be given during lectures without prior notification, there will not be make-up quizzes and the two lowest quiz scores will be dropped at the end of the semester)

•    25% Midterm Examination

•    35% Final Examination 

The midterm and final exams will be administered during the time allocated by CAS. There will not be any make-up exams and the failure to take an exam will count as a zero grade for that exam. The only exception to this rule is for students who have a legitimate medical or personal documented emergency that is promptly brought up to the attention of the instructor. If you will

miss an exam due to a religious observance, please familiarize yourself withUniversity Calendar   Policy on Religious Holidays and let the instructor know well in advance to come up with   alternative arrangements.

The grading schema for the course is as follows:


A        95- 100

A-       90-95

B+      87-90

B         83-87

B-        80-83

C+       76-80

C          72-76

D          65-72

F          less than 65


Please note that the grade of Incomplete (“I”) is reserved for students who, for legitimate and    documented reason, miss the final exam. The grade ofIncomplete will not be given to students who fell behind in class. Those students should withdraw from the class or switch to Pass/Fail

option.