Skip to content

Latest commit

 

History

History
40 lines (23 loc) · 1.71 KB

File metadata and controls

40 lines (23 loc) · 1.71 KB

Overview

The CS 61 series is an introduction to CS, with particular emphasis on software and on machines from a programmer's point of view.

  • CS 61A concentrates on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. It is about programming, such as functional programming, and object-oriented programming.

What is Computer Science?

  • What problems can be solved by computers?
  • How can computers help us solve problems?
  • What techniques lead to effective solutions?

Programming Techniques

They are the techniques that can be used to solve problems.

The Antatomy of a Recursive Function

It is a function that calls itself. The advantage of using recursive functions is that they can be used to solve complex problems with only a few lines of code. It can be used to solve problems that can be broken down into smaller, repetitive problems.

  • The def statement header is similar to the normal functions
  • Conditional statements check for base cases
  • Base cases are evaluated wihtout recursive calls
  • Recursive cases are evalauted with recursive calls

Iteration is a special case of recursion.

Luhn Algorithm

First: From the rightmost digit, which is the check digit, moving left, double the value of every digit; if product of this doubling operation is greater than 9 (e.g., 7 * 2 = 14), then sum the digits of the products (e.g., 10: 1 + 0 = 1, 14: 1 + 4 = 5). Second: Take the sum of all the digits.

Converting Recursion to Iteration

Idea: Figure out what state must be maintained by the iterative function

Practice

Recursion in Python