CS 112 - Fall 2012, Lab 01
Haohan Zhu
CS 112 - Fall 2012, Lab 01
Using Piazza
Boston University Slideshow Title Goes Here
http://www.piazza.com/bu/fall2012/cs112a1
Any question related to the course
4/12/2020
2
CS 112 - Fall 2012, Lab 01 4/12/2020
Using WebSubmit
Boston University Slideshow Title Goes Here
http://cs-websubmit.bu.edu/main.py?courseid=cs112
Submit all assignments via WebSubmit
3
CS 112 - Fall 2012, Lab 01
Lab Sections and Office Hours
Boston University Slideshow Title Goes Here
Attendence
Office Hours:
Tuesday. 5-6:30 p.m.
Wednesday. 3-4:30 p.m.
Tutoring Hour:
http://www.bu.edu/cs/resources/tutoring/
4/12/2020
4
CS 112 - Fall 2012, Lab 01 4/12/2020
Stack and Function
Boston University Slideshow Title Goes Here
Stack: Last In First Out (LIFO)
Function
F3 F3
Call Return
F2 F2 F2
Call
F1 F1 F1 F1
F2
F1
Return
F1
5
CS 112 - Fall 2012, Lab 01 4/12/2020
Recursive Function
Boston University Slideshow Title Goes Here
Same function, Different variables
F1
F1
F1
Call
Base Case
F1
Call
F1
F1
F1
Return
F1
F1
F1
F1
Return
F1
6
CS 112 - Fall 2012, Lab 01 4/12/2020
Recursive Function
Boston University Slideshow Title Goes Here
Base Case (what to do with trivial inputs)
Terminating Conditions
Most logical errors occur at ‘Base Case’
Not only one base case, maybe many cases
Recursive Call (how to solve the problem)
Most difficult part to design a recursive function
Understand which variables are changing, and which are constant.
7
CS 112 - Fall 2012, Lab 01 4/12/2020
Practice
Boston University Slideshow Title Goes Here
Implementing Exponentiation
Write a function to recursively compute the function f(x,n) = x^n
Compare your results with the built ‐ in java function
Math.pow(x, n)
n is a non-negative integer
8
CS 112 - Fall 2012, Lab 01
Practice
Boston University Slideshow Title Goes Here
Consider f(x,n) = x^(n/2) * x^(n/2)
What do you need to do if n is odd?
Count number of recursive calls
Count time by using: System.nanoTime()
4/12/2020
9