CS101 Midterm #2 Exam Topics
The midterm exam on Wednesday 11/7 is closed book and closed notes. Calculators are not
allowed. However, you may bring a "cheat sheet" consisting of one page of
notes (front and back). The best way to study for the test is to
understand your homework questions and be able to answer the questions at the end of the chapters in the book.
Key Terms
- You should know all the key terms listed at the back
of all the chapters covered (4, 6-7, 12)
- There won't be as many multiple choice-type questions as Exam #1, but more
questions that test an understanding of concepts as opposed to knowing
terms
Computer Architecture and
Machine Language
- Understand machine code for the hypothetical machine (op codes will be
provided for you)
- Write machine code to solve a small problem
- E.g., compute Fibonacci numbers, sum numbers from 1-N, etc.
- May require understanding 2's complement as well
Unix
- Understand the hierarchical organization of the file system
- Know the four file types in Unix
- Ordinary, Directory, Device, Link
- Know how to change permissions for the user, group, or everyone via
chmod
- Know some basic commands
- ls, cat, more, mkdir, rmdir, cd
HTML
Operating Systems Concepts
- Role of the BIOS, device drivers,
- GUI vs. Command Line interfaces
- File storage
- Concept of a cluster, mapping of a file to multiple clusters
- Clusters need not be contiguous, how do they get non-contiguous?
- Defragmentation
- Levels of caching
- cache for RAM, cache for Disk
- RAMdisk
- What to replace if the cache is full
- Concept of virtual memory
- Context Switching vs. Multitasking
- How it is implemented
- What the CPU has to do when we multitask or switch processes
Artificial Intelligence Concepts
- What AI-based computers are good at and what they aren't good at
- The Turing Test
- The physical symbol hypothesis
- Difficulties in natural language processing and common-sense
reasoning
- What a rule-based system is
- Heuristic search through a game tree
- Concept behind a neural network
- Supervised training
- Capabilities
- Concept behind genetic algorithms
- How one would use a GA to solve a problem
- Complex Adaptive Systems and Artificial Life
Networking
- ARPANet, History of the Internet
- Physical Media, characteristics of each
- Twisted Pair
- Coaxial Cable
- Fiber Optics
- Wireless
- Infrared, Microwave, Radio
- Satellite communication, issue of latency
- Difference between bps and baud
- Transmitting analog vs. digital signals, modulation of digital signals
with analog
- Bandwidth in an analog sense vs. a digital sense
- DAN vs. LAN vs. MAN vs. WAN
- Network Topologies
- bus, ring, star, tree, fully-connected (why is this hard to do?)
- When a star can operate as a logical bus
- Network hardware
- Hub, switch, bridge, router
- How Ethernet works vs. Token Ring
- Method each uses for media access control
- Scenarios where one is preferable to another
- Concept of packets
- What type of data is contained in a packet
- Purpose of using packets
- Networking Stack of Layers, what each layer does
- Application
- Transport
- Internet
- Data Link
- Physical
- Role of DNS with IP addresses
- Understanding what traceroute does
Programming Concepts
- Algorithm development
- Be able to write pseudocode, flowchart, etc. to describe how to solve
some problem
- E.g., computing a sales tax, computing n factorial, etc.
- Difference between different generations of programming languages
- machine, assembly, high-level, object-oriented, scripting/macro
- Difference between assemblers, interpreters, and compilers
- Where Java stands in terms of interpreted and compiled, why?
- Process of building a software program
- Design algorithm, write code, documentation, testing
- Using flowcharts or pseudocode
Stuff not on the test