Difference between revisions of "Summer 2014 Exam 1"

From CS 61A Wiki
Jump to: navigation, search
[checked revision][checked revision]
(Staff Guides and Websites)
 
(43 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Time and Location ==
+
{{purge}}
 +
 
 +
 
 +
== Logistics ==
 
'''2050 VLSB, 7pm Thursday (July 10, 2014)'''
 
'''2050 VLSB, 7pm Thursday (July 10, 2014)'''
 +
 +
Bring
 +
* pencil and eraser
 +
* one front and back 8.5x11" cheatsheet
 +
* a copy of [http://ocf.berkeley.edu/~shidi/cs61a/guerrilla/env.txt The Rules]
 +
** You can write on your copy of The Rules (8.5x11"), giving you 2 cheatsheets total.
 +
 +
Don't bring
 +
* Any sort of electronics
 +
* Cell phones are okay, but must be turned off for the duration of the exam
  
 
== Topics ==
 
== Topics ==
Line 14: Line 27:
 
** [[Function]]s
 
** [[Function]]s
 
** '''[[Expression#Call_expressions | Function Call Evaluation]]'''
 
** '''[[Expression#Call_expressions | Function Call Evaluation]]'''
* '''[[Higher-order function]]s'''
+
* '''[[Higher-order function]]s and [[Lambda | Lambda expressions]]'''
 
* '''[[ Recursion ]]'''
 
* '''[[ Recursion ]]'''
 
* [[Linked list]]s (ignore tuples and OOP); Also known as <code>rlists</code> in other semesters.
 
* [[Linked list]]s (ignore tuples and OOP); Also known as <code>rlists</code> in other semesters.
 
* '''[[Recursion#Tree recursion|Tree Recursion]]'''
 
* '''[[Recursion#Tree recursion|Tree Recursion]]'''
* '''[[Environment]]s / [[Environment diagram]]s'''
+
* '''[[Environment]]s / [[Environment diagram]]s''' (Note that our Env. Diagrams are compatible with Fall 2012 and onward.)
 
* [[Sequence]]s
 
* [[Sequence]]s
 
* [[Abstract data type]]s
 
* [[Abstract data type]]s
 
* [[Trees]] (We haven't covered BSTs or Trees in Scheme)
 
* [[Trees]] (We haven't covered BSTs or Trees in Scheme)
* [[Deep lists]]
+
* [[Linked list#Types | Deep lists]]
 
* [[Orders of growth]]
 
* [[Orders of growth]]
 
* [[Newton's method]]
 
* [[Newton's method]]
 
* [[Halting problem]] (Extra Credit)
 
* [[Halting problem]] (Extra Credit)
 
'''Bolded''' topics are going to have in-depth questions.
 
'''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 ==
 
== Practice Problems ==
 
[https://docs.google.com/document/d/1zNMhevz0tuQXJA3xPgzm-VbES5D83Qgb_C7fzJOQJf4/edit?usp=sharing Summer 2014 Exam 1 Warmup Questions]
 
[https://docs.google.com/document/d/1zNMhevz0tuQXJA3xPgzm-VbES5D83Qgb_C7fzJOQJf4/edit?usp=sharing Summer 2014 Exam 1 Warmup Questions]
  
Also check [[Past exams]] and [[Practice problems]]
+
[[Practice problems]] (From previous semesters. Easier than exam questions usually.)
 +
 
 +
[https://docs.google.com/document/d/1GO2Ic2cK1wgcEv2rtm6eWxBu0pVCmphaCuu0-y1WyEA/edit?usp=sharing Guerrilla #1 - Higher Order Functions]
 +
([https://docs.google.com/document/d/1LidSsQm09e0fenbGOnpjujptGLSl--jA23aOQ5AjR24/edit?usp=sharing Solutions])
 +
 
 +
[https://docs.google.com/document/d/1P0CZXh0AQR-5SpQupNk_7tmfzG63sFhKN3BYtZTZjtY/edit?usp=sharing Guerrilla #2 - Recursion]
 +
([https://docs.google.com/document/d/1MljYxhKLWQgh9sq387i1XGXROSJYEwCZIdJ6mWyhbJ8/edit?usp=sharing Solutions])
 +
 
 +
('''Guerrilla section go from fundamental questions to midterm level and beyond.''')
 +
 
 +
===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)
 +
** 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)
 +
 
 +
== Staff Guides and Websites ==
 +
[http://youripark.github.io/tutorials.html Guides by Youri]
 +
 
 +
[https://docs.google.com/document/d/1-klw_UtTGtR7dwQo1aQOKpPPKtzfSmkhvmNmiTKSiPY/edit?usp=sharing Jessica's Domain/Range guide to cons, car, and cdr on Discussion 3]
 +
 
 +
[https://docs.google.com/a/berkeley.edu/document/d/1PBf2TknXmDivPV3qbnKRUDvuj-0W6LkMFGDRlWoFu3s/edit Ajeya's Recursion Guide]
 +
 
 +
[https://piazza.com/class/hv3d500fcvs4d8?cid=109 Piazza's Useful posts and guides ]
 +
 
 +
[[ Guides#Andrew_Huang.27s_tips | Andrew's tips that apply for this midterm ]]
 +
 
 +
[https://www.youtube.com/watch?v=ia60GQNKChI Andrew draws an environment diagram] ([https://docs.google.com/document/d/1RPUfcOggSXdEWeYptXgCVwDQF08JNbuOhd9qmDfEPhc/edit?usp=sharing original problem (and solutions)])
 +
 
 +
[https://docs.google.com/document/d/1TxfKmM3MlH032hjSUh92I0kQDVcvmitTSzYObGMr8Bk/edit?usp=sharing Orders of Growth and Function Runtime guide]
  
 
== How to study ==
 
== How to study ==
<pre>Here is an old algorithm for studying for tests (the final in this case), salvaged from the sands of time:
+
<pre>Here is an old algorithm for studying for tests:
For each topic on the final, find problems on them and do them.
+
For each topic on the exam, find problems on them and do them.
 +
START ON THE TOPICS YOU'RE MOST UNFAMILIAR WITH!
 
  If you can solve them on your own, move on.
 
  If you can solve them on your own, move on.
 
  Else if you are stuck, look at the solution and figure out if you
 
  Else if you are stuck, look at the solution and figure out if you
Line 41: Line 141:
 
   If the problem is that you are stuck on some random trick,
 
   If the problem is that you are stuck on some random trick,
 
     just learn the trick.
 
     just learn the trick.
  Stare at the solutions, ask Piazza, your TA, etc.
+
      Stare at the solutions, ask Piazza, your TA, etc.
 
   Questions you should ask at this stage:
 
   Questions you should ask at this stage:
 
     What is the problem asking me to do?
 
     What is the problem asking me to do?
Line 50: Line 150:
 
   Then if you think you are still stuck conceptually, review
 
   Then if you think you are still stuck conceptually, review
 
   and learn the concept, however you learn best.
 
   and learn the concept, however you learn best.
 +
 
   Suggestions for picking up concepts quickly (~1-2 hours):
 
   Suggestions for picking up concepts quickly (~1-2 hours):
 
     Discussion notes typically have a very concise recap of the
 
     Discussion notes typically have a very concise recap of the
 
       thing they are going over.
 
       thing they are going over.
     There are guides for particularly tricky things on Piazza,
+
     There are guides for particularly tricky things on the wiki,
       like Logic, Pairs and Lists in Scheme, etc.
+
       like Hanoi, powerset, etc.
 
       Find them and go over them.
 
       Find them and go over them.
 
     Ask a TA: "what is the best way to learn X?"
 
     Ask a TA: "what is the best way to learn X?"
 
     If these do not work and you are still shaky after an hour
 
     If these do not work and you are still shaky after an hour
 
     or two, it might be worth watching a lecture or reading
 
     or two, it might be worth watching a lecture or reading
     the notes.</pre>
+
     the notes. Be sure to try out some more problems as you're learning!</pre>

Latest revision as of 09:25, 17 September 2014

Purge this page if the LaTeX typesetting doesn't render.


Logistics

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

Bring

  • pencil and eraser
  • one front and back 8.5x11" cheatsheet
  • a copy of The Rules
    • You can write on your copy of The Rules (8.5x11"), giving you 2 cheatsheets total.

Don't bring

  • Any sort of electronics
  • Cell phones are okay, but must be turned off for the duration of the exam

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

Summer 2014 Exam 1 Warmup Questions

Practice problems (From previous semesters. Easier than exam questions usually.)

Guerrilla #1 - Higher Order Functions (Solutions)

Guerrilla #2 - Recursion (Solutions)

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

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)
    • 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)

Staff Guides and Websites

Guides by Youri

Jessica's Domain/Range guide to cons, car, and cdr on Discussion 3

Ajeya's Recursion Guide

Piazza's Useful posts and guides

Andrew's tips that apply for this midterm

Andrew draws an environment diagram (original problem (and solutions))

Orders of Growth and Function Runtime guide

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.
START ON THE TOPICS YOU'RE MOST UNFAMILIAR WITH!
 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.
       Stare at the solutions, ask Piazza, your TA, etc.
   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!