# Difference between revisions of "Summer 2014 Exam 1"

 [checked revision] [unchecked revision]

## Time and Location

2050 VLSB, 7pm Thursday (July 10, 2014)

## Topics

Bolded topics are going to have in-depth questions.

## Side skills

• Identifying the Operator and Operands
• Drawing Function Boxes
• Identifying Domain and Range
• Drawing Box and Pointers
• Environment Diagrams!
• Identifying the Theta of a function

## Practice Problems

Guerrilla section questions go from fundamental to midterm level and beyond.

Practice problems (Easier than exam questions usually.)

### Problems to Focus on from Past exams

Fall 2011

• Midterm 1:
• 4 (Data Abstraction)
• Midterm 2:
• 4b (Overlap - string processing and recursion)

Summer 2012

• Midterm 1:
• 1 (Order of evaluation)
• 2a, 2b (Order of evaluation and lambdas)
• 3a, 3c (Orders of growth: replace O with $\Theta$)
• 6 (deep linked_lists and tree recursion: replace deep_irlist with a deep linked_list)
• Final:
• 2c (Orders of growth and recursion)

Fall 2012

• Midterm 1:
• 1 (Functional calls and What Would Python Do?)
• 2 (Environment diagrams and lambdas)
• Midterm 2:
• 4b (Strings and tree recursion)
• Final:
• 2a (Environment diagram)

Spring 2013

• Midterm 1:
• 2 (Environment diagrams, lambdas)
• 3 (Higher-order functions)
• Midterm 2:
• 2b (Environment Diagram)
• Final:
• 4a (HOF and lambdas)

Summer 2013

• Midterm 1:
• 1 (Function calls and What Would Python Do?)
• 2 (Lambda functions)
• Midterm 2:
• 4 (Environment diagrams)
• 6 (Recursion and helper functions)
• Final:
• 3b (Environment diagram)

Fall 2013

• Midterm 1:
• 1 (Function calls and What Would Python Do?)
• 2 (Environment diagrams)
• 3b, 3c (HOF and lambdas)
• 3d (Strings and iteration)
• Final:
• 3a, 3c (Tree recursion)

Spring 2014

• Midterm 1:
• 1 (HOF and What Would Python Do?)
• 2 (Environment Diagram)
• 3d (Tree recursion)
• Midterm 2:
• 3 (Data Abstraction)

## How to study

Here is an old algorithm for studying for tests:
For each topic on the exam, find problems on them and do them.
If you can solve them on your own, move on.
Else if you are stuck, look at the solution and figure out if you
are missing a trick or if you do not understand the concepts.
If the problem is that you are stuck on some random trick,
just learn the trick.
Questions you should ask at this stage:
What is the problem asking me to do?
How was I suppose to follow the instructions
to solve the problem?
What part of the problem do I not understand?
What is the fastest way to clear up that misunderstanding?
Then if you think you are still stuck conceptually, review
and learn the concept, however you learn best.

Suggestions for picking up concepts quickly (~1-2 hours):
Discussion notes typically have a very concise recap of the
thing they are going over.
There are guides for particularly tricky things on the wiki,
like Hanoi, powerset, etc.
Find them and go over them.
Ask a TA: "what is the best way to learn X?"
If these do not work and you are still shaky after an hour
or two, it might be worth watching a lecture or reading
the notes. Be sure to try out some more problems as you're learning!