You are here: Home / Past Courses / Spring 2012 - ECPE 170 / Objectives


By the end of this course, you should be able to do the following:

Number Systems and Computer Arithmetic

  1. Define the power of 2 and power of 10 values for: kilo, mega, giga, tera, milli, micro, nano.
  2. Convert numbers in base 10 to base 2, and numbers in base 2 to base 10.
  3. Convert numbers in base 16 to base 2, and numbers in base 2 to base 16.
  4. Express a number in two's complement.
  5. Give the range of valid numbers expressible in a given integer representation.
  6. Explain what overflow is, and how it can be detected when adding two's complement numbers.
  7. Name the three ways a signed binary number can be represented.
  8. Name the parts of floating point number.
  9. Express a floating-point number in IEEE 754 single-precision format.
  10. Discuss the causes for error in integer and floating point arithmetic.
  11. Name the three types of character codes discussed in the textbook.


Boolean Logic

  1. Identify the basic logic gates (AND, OR, NOT, XOR, NAND, NOR) and give their truth tables.
  2. Use Boolean identities to prove the equivalence of two expressions.
  3. Use DeMorgan's Law to rewrite an expression.
  4. Write a Boolean expression in sum-of-products or product-of-sum form.
  5. Derive a Boolean expression or truth table for a given logic circuit.
  6. Directly draw a logic circuit from a Boolean expression
  7. Explain what each of the following combinational devices does: full adder, decoder, multiplexer, shifter
  8. Identify the basic flip-flops (SR, JK, D) and give their characteristic tables.
  9. Write a simplified Boolean expression from a K-map.
  10. Create a K-map for a Boolean function.


Computer Architecture - General

  1. Define or give one defining phrase for generations 0-4 of computers.
  2. Name and explain the seven layers of the Computer Level Hierarchy used in the textbook.
  3. Name the characteristics of a von Neumann architecture.
  4. Describe the purpose of a CPU's datapath and control unit
  5. Name the components of a CPU's datapath
  6. Describe the difference between multipoint and point-to-point buses.
  7. Explain the difference between error detection and error correction.
  8. Describe how instructions are decoded by the control unit
  9. Discuss the differences between hardwired and microprogrammed control units
  10. Show how a multi-byte value is stored in big endian and little endian machines
  11. Calculate the maximum speed-up for a pipelined processor
  12. Calculate the speed-up ratio of a pipelined processor for a given number of tasks.
  13. Identify characteristics of CISC and RISC architectures.
  14. Calculate aspects of RISC architectures register windowing (Exercises 9.7 and 9.8).
  15. Describe Flynn's taxonomy.
  16. Name the differences between symmetric multiprocessors (SMPs) and massively parallel processors (MPPs).
  17. Identify the six principle types of interconnection network topologies.
  18. Describe the difference between UMA and NUMA architectures.
  19. Identify the alternative architectures (dataflow, systolic arrays, neural networks, quantum computers) discussed in the textbook.
  20. State Moore's Law.
  21. State Amdahl's Law in words
  22. Apply Amdahl's Law to determine the speed-up for an overall system given the speed-up of a new component and the fraction of work it performs
  23. Apply Amdahl's Law to determine the most cost effective way to speed up a system


Computer Architecture - Memory Systems

  1. Describe the main characteristics of SRAM, DRAM, and ROM
  2. Calculate the size of various aspects of a given memory system (number of memory chips needed, number of address lines for word and byte addressing, etc)
  3. Explain the concept of the memory hierarchy, and the memory pyramid (Figure 6.1)
  4. Explain how the locality principle and the three types of locality influence the memory hierarchy
  5. Identify the three types of cache designs discussed in class (direct mapped, fully associative, N-way set associative)
  6. Determine the size of each field in a memory address for a given cache system.
  7. Determine the sizes of various cache structures (number of blocks, number of sets, words per block, number of main memory blocks) given a memory address broken into the tag, set/block, and word fields.
  8. Determine cache hits and misses for a series of main memory accesses.
  9. Determine the effective access time (EAT) for a particular program.
  10. Describe what write-back and write-through caches are and how they differ.
  11. Determine the number of pages in virtual memory and physical memory, and the size of the page and offset fields in an address.
  12. Determine the virtual-to-physical address mapping given a page table, and determine whether a page hit or page fault occurs.
  13. Describe what the TLB is and the advantages of having it.


Computer Architecture - I/O (Disks)

  1. Name the four types of I/O control methods, and know their main characteristics.
  2. Define character and block I/O.
  3. Describe the difference between synchronous and asynchronous bus transfers.
  4. Identify the physical and logical components of a magnetic hard disk drive.
  5. Calculate the access time for a hard disk drive.
  6. Give the main characteristics of RAID 0, RAID 1, RAID 3, RAID 4, RAID 5, and RAID 6.
  7. Calculate the amount of available storage for a particular RAID type.


Programming - Assembly Language

  1. Calculate the number of possible opcode for a given expanding opcode ISA.
  2. Name and describe the 7 types of computer instructions.
  3. Give examples of immediate, direct, register, indirect, and indexed addressing.
  4. Read register transfer language
  5. Read simple MARIE programs
  6. Encode and decipher MARIE assembly language or MARIE machine language instructions
  7. Write a simple MARIE-type program on a stack based architecture

Programming - Compilers and High-Level Languages

  1. Describe what absolute code and relocatable code are.
  2. Convert infix to postfix notation, and convert postfix to infix notation
  3. State what is done in the six stages of compilation.
  4. List advantages and disadvantages of interpreters.


Operating Systems

  1. List the operations performed by a resident monitor program.
  2. Describe how multiprogramming systems differ from timesharing systems
  3. Describe differences between a microkernel and a monolithic kernel
  4. Describe the steps performed in a context switch
  5. Describe the difference between preemptive and nonpreemptive scheduling
  6. Give characteristics of the four short-term scheduling strategies (first-come-first-served, shortest job first, round robin, priority)



  1. Describe the four ACID properties of database management systems.


Computer Networks

  1. Describe differences between guided and unguided media, and list examples of each.
  2. Define the purpose of each layer in the ISO reference model.
  3. Describe the purpose of the IP layer.
  4. Describe the purpose of the TCP layer.
  5. Calculate TCP/IP protocol overhead percentages for transmission of a given payload size.
  6. Determine TCP ACK values for a given TCP transfer.
  7. Describe how hubs, switches and routers differ from one another.
  8. Determine router table values using distance vector routing.
  9. Describe the purpose of Address Resolution Protocol (ARP).
  10. Describe the purpose of Dynamic Host Configuration Protocol (DHCP).
  11. Describe the purpose of Domain Name Service (DNS).
  12. Explain the difference between routing a packet within a subnet and through a router.
  13. Define pulse-code modulation.
  14. Define time division multiplexing.
  15. Identify the three forms of modulating a signal (amplitude, frequency, phase change).