Study Guide


Midterm Exam: Wed., Oct. 15, 2014

The exam will be in class, and you will have 50 minutes to complete it. It will be closed book, closed notes, closed calculators, closed laptops, closed cell phone, and closed class mates during the exam.


Here is a list of topics that you should be able to explain or use in a program.
Understanding these topics well will help you do well on the exams.

This is a guide, not a guarantee. I intend for it to help you, but questions on the exam can come from any material we have studied in this class.

  1. the main components of a computer system
  2. internal representation of information in a computer... bits, bytes, words, binary
  3. the fetch/execute cycle
  4. the storage speed vs. cost vs. capacity pyramid (slow cloud to fast ram)

  5. data types: numeric, string, boolean
  6. constants
  7. variable declaration... creating storage in your program
  8. basic arithmetic expressions on numeric data
  9. operator precedence rules (PEMDAS)
  10. assignment... storing values in variables
  11. comparison of data values (less than, greater than, less than or equal, equal, not equal, etc.)
  12. boolean operators (and, or, not)

  13. input via prompt statement
  14. output via alert statement
  15. for loop
  16. while loop
  17. conditional statements: if-then, if-then-else, if-then-else-if-else-if-else (cascade), switch

  18. function definition
  19. function calls
  20. passing parameters into functions
  21. passing information back from a function with the return statement
  22. scope rules ... what names are visible where
  23. global vs. local scope

  24. understand all your bricks
  25. variables used as counters (with addition, with multipication)
  26. variables used as accumulators (with addition, with multiplication)
  27. Math object functions we have used (sqrt, floor, round)
  28. other functions: isNaN, Number
  29. understand the basic algorithms we study (like binary search)

  30. simulated execution of a program, organizing the variable value changes with memory maps (tables)

  31. basic software development habits: write a few lines of code, compile, test, make sure it works before adding more lines
  32. grow your program, dont write it
  33. always have a working version
  34. input data validation
  35. design your algorithm at the start... your first working version is a program of mostly comments that indicate what major activities to do in what order