CSCI-UA.0201-007 COMPUTER SYSTEMS ORGANIZATION Spring 2022
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.
2022-02-14