Study Guide


First Midterm Exam: Tuesday, Oct. 15, 2013

The exam will be in class, and you will have 75 minutes to complete it. It will be closed book, closed notes, closed calculators, 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. The structure of an HTML document (head, body, etc.) and the location(s) of JavaScript programs within that structure
  6. HTML tags... what are the common ones we have been using, what do they do in the browser window

  7. data types: numeric, string, boolean
  8. variable declaration... creating storage in your program
  9. basic arithmetic expressions on numeric data
  10. assignment... storing values in variables
  11. constants and flag data values
  12. for loop
  13. while loop
  14. conditional statements: if, if-then, if-then-else, if-then-else-if, switch
  15. boolean expressions and comparison of data values (less than, greater than, less than or equal, equal, not equal, etc.)

  16. input via prompt
  17. input via form text fields
  18. simple output via alert
  19. output to a form text field
  20. HTML output via document.write()

  21. function definition
  22. function calls
  23. passing parameters into functions
  24. passing information back from a function with the return statement
  25. scope rules ... what names are visible where

  26. variables used as counters (with addition, with multipication)
  27. variables used as accumulators (with addition, with multipication)
  28. symbolic execution of a program, organizing the variable value changes with memory maps (tables)

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

  33. understand the basic algorithms we study... like binary search