COM 2113: Computer Organization and Assembly Language
View/ Open
The file is restricted.
Please click here to access if the item description shows YU only.
Date
2022-08Author
YU Faculty Directory
Metadata
Show full item recordShare
Description
YC course syllabus / YU only
Abstract
Description COM2113 helps you become a better programmer through understanding the basic concepts
underlying all computer hardware systems. You need to know what really happens when your
programs run, so that when things go wrong (as they always do) you have the intellectual tools to
solve the problem. Higher-level programming languages are based on convenient abstractions that
can break down when executed on actual computer hardware. These breakdowns include: finite
arithmetic, memory access violations, asynchronous signals, and mismatches between data structures
and the physical memory hierarchy. By the end of the course, students will understand these realities
in considerable detail and be able to apply them to improving the code they write.¶
Course
Outcomes
Students will write low-level programs to manipulate the representations of integers and floatingpoint
numbers in the C language.
Students understand and debug (unoptimized) assembly language code produced by current C
compilers
Students will be able to predict and simulate the effects of cache memories on running programs for
both hypothetical and actual computer hardware
Students will understand how Linux programs process asynchronous signals, and how to write signalsafe
code.
Students will understand how virtual memory affects program performance on X86_64 processors
Students will analyze the efficiency of various dynamic memory allocation schemes.
Students will be able to apply advanced code optimizations to matrix algorithms.
Students will understand how computer architecture gives rise to security flaws¶
Major Topics
Covered in
Course
Introduction to the C programming language and Linux command line (first 2 weeks)
Finite binary representations of integers and real numbers, both scalars and vectors.
X86_64 assembly language
In-memory layout of executing C and assembler programs.
Memory hierarchies and the importance of temporal and spatial locality.
Signaling asynchronous events; blocking and delaying signals
Issues in implementing I/O correctly
Principles of low-level code optimization
Dynamic memory allocation schemes.
Permanent Link(s)
https://hdl.handle.net/20.500.12202/8190Citation
Wymore, B. (2022, Fall). COM 2113: Computer Organization and Assembly Language. Yeshiva College, Yeshiva University.
*This is constructed from limited available data and may be imprecise.
Item Preview
The file is restricted. Please click here to access if the item description shows YU only.
The following license files are associated with this item: