Midterm Review Overview of topics covered

advertisement
Midterm Review
Overview of topics covered
Excerpts from the exam cover page
• Do not discuss the exam with, or accept help from, anyone.
• Rules
• This examination is open-book and open-note:
• You may use the textbook, course notes, your own notes, corrected problem sets
and solutions, documents from the web that you printed before the exam, lab
instructions, etc.
• You may use a calculator.
• You may not use anything else; specifically, you may not use a computer, phone or
tablet (except that you can use the calculator program on one of these, and you
can use your computer to view course notes if you did not print them).
• Submission
• Due by 11:59 PM, Friday, Oct 30, in the box outside Room 419 of the
Computer Science building.
• Please do not discuss the exam with anyone until after the submission deadline
has passed.
• Going digital – music, pictures, sounds, text, ascii, Unicode
• Major pieces of a computer and what they do – CPU, RAM, disk, peripherals, bus to connect them
• Analog vs digital, bits and bytes, binary, hexadecimal
•
Converting among representations; how many bits/bytes to represent ….
• Fetch/execute cycle in the CPU, relation between CPU and RAM, von Neumann machine
• Assembly language and the Toy simulator
•
Basic instructions (load/store, arithmetic, branching)
• History of computing devices from Babbage to von Neumann to the present
• Basic logic gates, truth tables, XOR, NOR and NAND
• Transistors as the most basic building blocks for making chips, Moore’s Law
• Growth of transistor counts in CPUs, caches, …
• State machines, Turing machines
• Algorithms – logarithmic time, linear time, quadratic time, …
• Algorithms for sorting and searching, exponential algorithms vs polynomial time algorithms, NP-complete
problems
• Programming languages – basic constructs, high level languages, evolution over time,
• compiling into assembler and machine code, portability
• Operating systems – controlling the operation of the machine, memory management (virtual memory), device
drivers,
•
Historical development – Unix/Linux, MacOS, Windows, Fetch/execute cycle
• File systems -- facilitated by operating system, manages blocks on disk, manages hierarchy of names,
• Quantitative Reasoning
Download