Learning Objectives

The subset of learning objectives that you can demonstrate your understanding on for Exam 1 are:

  • NR1: Converting from unsigned binary to decimal
  • NR3-AD: Adding/Subtracting two hexadecimal numbers

  • DR1: Demonstrate how a struct is stored in memory with arrays (no buffer bytes)
  • DR2: Encode a codepoint (given the byte count) (with table provided)
  • DR3: Explain how bytes are interpreted with %c and %d
  • DR4: Demonstrate how an integer is stored in big- and little-endian
  • DR5: Demonstrate the use of \0 to null-terminate a string
  • DR6: Demonstrate the difference between a value and its address
  • DR7-AD: Demonstrate how complex elements (e.g. structs with nested arrays) of an array are stored in memory
  • DR8-AD: Decode a multi-character encoded byte sequence (any byte count) (with table provided)

  • OP1: Perform a given bitwise/logical operation
  • OP2: Perform a given logical shift operation
  • OP4: Use addresses of members of a struct or elements in a char array correctly
  • OP5-AD: Provide bitwise/shift/logical operations for a given affect (e.g. via masking)
  • OP7-AD: Demonstrate the correct use of & and * operators

You will be allowed to bring your checklist with you but there should be no writing on it other than your name and you will submit it with your exam. I’ll return them after the exam.

Suggestions

Remember that this isn’t your only chance to demonstrate your understanding of these learning objectives, so try not to stress too much. Good ways to study for the exams are:

  • Finish any reading checks/labs that you hadn’t finished or redo ones that you did finish
  • Go back over the readings/videos relevant to the learning objectives
  • Try any of the exercises at the ends of relevant chapters that are about the learning objectives
  • Work on the current homework, since it usually overlaps with the exam objectives
  • Attend the prefect sessions