The test covers Chapter 1, Chapter 2, Sections 3.1, 3.3 (except Huffman encoding), 3.4 & 3.5 of Chapter 3, Sections 16.1 & 16.2 of Chapter 16.

- Know the role of hardware, software, and data in a computing system.
- Understand the basic idea behind what each layer of a computing system represents.
- From the history of computing
- Know when the modern computer era began and the two main events that started it
- Know the role of each of the following important people in the history of computers: Joseph Jacquard, Charles Babbage, Ada Byron Lovelace, Herman Hollerith, Alan Turing, John von Neumann, Presper Eckert, John Mauchly.
- Know the importance of each of the following machines in the history of computing (and what problems each was designed to solve): Jacquard's loom, Analytical Engine, Hollerith's Tabulating Machine, Harvard Mark I, ENIAC, Colossus.
- Know the primary technology for switches in each of the four generations of hardware.

- Know the networking terms defined in Chapter 1 - Internet, protocol, TCP/IP, packet switching, file server.
- Know the three levels of language - Machine, Assembly, High Level

- Understand positional notation and place value number systems.
- Be able to convert a number in any base to its equivalent in base 10.
- Be able to convert a base 10 number to any base two different ways: (1) Using the place values (as we did in class); (2) Using the algorithm that involves repeatedly dividing by the base (this is the algorithm given in the book)
- Know the relationship between bases 2 (binary), 8 (octal), and 16 (hexadecimal) and be able to convert between these bases using the relationship.
- Be able to add and count in other bases.
- Know what a byte and a word are

- Know what compression is
- Know the difference between analog data and digital data
- Understand why digital is better for an electronic computer
- Understand the idea of binary codes - be able to determine the number of things that can be represented using an n-bit code and, on the other hand, if you know how many things you want to represent be able to determine the number of bits needed (bit-length) in the code.
- Know what a character set is; know what ASCII and Unicode are
- Be able to do keyword encoding and run length encoding
- Be able to compute the compression ratio when encoding text using a compression technique
- Understand the basics of audio representation - the idea of sampling and how sound is represented on an audio CD. Know the basics of MP3 representation.
- Understand the basics of representing color and images - an RGB value, pixel, resolution, raster graphics formats, a bitmap, GIF and JPEG (which is best for which types of images), PNG, vector graphics

- Know what HTML is
- Know what a tag is and that tags often come in pairs (what these pairs would look like)
- Know the two important parts that one must include to put a link on a Web page.
- Know the difference between the Web and the Internet
- Know what a Web server is and what a Web browser is
- Understand the interaction between Web browsers and Web servers (that is, understand how the Web works - what is happening when you request a Web page)
- Know what a URL is
- Know what a cookie is