Top Banner
Marvin Zhang 06/20/2016 Lecture 1: Introduction
153

Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

May 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Marvin Zhang 06/20/2016

Lecture 1: Introduction

Page 2: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Welcome to Berkeley Computer Science!

Page 3: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

Page 4: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

2Lecturers

Page 5: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

2Lecturers 12TAs

Page 6: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

2Lecturers 12TAs

13Tutors

Page 7: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

2Lecturers 12TAs

13Tutors

100+Labassistants!

Page 8: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Humans of CS 61A

2Lecturers 12TAs

13Tutors

100+Labassistants!

400+Students!!!

Page 9: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

Page 10: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?

Page 11: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?

Page 12: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Page 13: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

Page 14: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Page 15: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Page 16: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Page 17: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

Page 18: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

Page 19: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

Page 20: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

Page 21: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

Page 22: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

Page 23: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Page 24: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Page 25: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

Page 26: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Page 27: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Page 28: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

Page 29: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

NavigationandLocomotion

Page 30: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

NavigationandLocomotion

Perception

Page 31: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

NavigationandLocomotion

Perception

Human-RobotInteraction

Page 32: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

NavigationandLocomotion

Perception

Human-RobotInteraction

...

Page 33: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Computer Science in one slide

• What problems can computers solve?• How do we get computers to solve these problems?• What are general techniques for problem solving?

Systems

ArtificialIntelligence

Security

Networking

Theory

ComputationalBiology

...

NaturalLanguageProcessing

MachineLearning

ComputerVision

Planning

Robotics

...

Manipulation

NavigationandLocomotion

Perception

Human-RobotInteraction

...

Page 34: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

Page 35: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:

Page 36: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details

Page 37: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

Page 38: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

Page 39: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

Page 40: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

• Master these ideas through implementation:

Page 41: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

• Master these ideas through implementation:• Learn the Python programming language (& others)

Page 42: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

• Master these ideas through implementation:• Learn the Python programming language (& others)• Complete large programming assignments

Page 43: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

CS 61A in one slide

• High-level ideas in computer science:• Abstraction: manage complexity

by hiding the details• Paradigms: utilize different

approaches to programming

• Master these ideas through implementation:• Learn the Python programming language (& others)• Complete large programming assignments

• A challenging course that will demand a lot from you

Page 44: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Alternatives to CS 61A

Page 45: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Alternatives to CS 61A

CS10:TheBeautyandJoyofComputingcs10.org Offeredthissummer!

Page 46: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Alternatives to CS 61A

CS10:TheBeautyandJoyofComputingcs10.org

DataScience8:FoundationsofDataSciencedata8.org

Offeredthissummer!

Page 47: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Details on cs61a.org

Course Policies

Page 48: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

Page 49: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB

Page 50: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course

Page 51: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course

Page 52: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course

Page 53: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course• Online textbook: composingprograms.com

Page 54: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course• Online textbook: composingprograms.com

• Regular homework assignments

Page 55: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course• Online textbook: composingprograms.com

• Regular homework assignments• 4 big programming projects

Page 56: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course• Online textbook: composingprograms.com

• Regular homework assignments• 4 big programming projects• Weekly quizzes, one midterm, and one final exam

Page 57: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course overview

• Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB• Labs: the most important part of this course• Discussions: the most important part of this course• Office hours: the most important part of this course• Online textbook: composingprograms.com

• Regular homework assignments• 4 big programming projects• Weekly quizzes, one midterm, and one final exam• Lots of special events!

Page 58: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Page 59: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Total 300 points

Grading

Page 60: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Assignments 150 points

Page 61: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Assignments 150 points

Exams 150 points

Page 62: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Exams 150 points

Homework30points

Page 63: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Exams 150 points

Homework30points

Lab20points

Page 64: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Exams 150 points

Homework30points

Lab20points

Projects100points

Page 65: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Homework30points

Lab20points

Projects100points

Weeklyquizzes40points

Page 66: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Homework30points

Lab20points

Projects100points

Weeklyquizzes40points

Midterm40points

Page 67: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Grading

Homework30points

Lab20points

Projects100points

Weeklyquizzes40points

Midterm40points

Final70points

Page 68: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

Page 69: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each

Page 70: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

Page 71: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each

Page 72: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

Page 73: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

• Written quizzes will be in lecture on Thursdays

Page 74: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

• Written quizzes will be in lecture on Thursdays• We have sent out instructions for students who cannot attend

Thursday lectures

Page 75: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

• Written quizzes will be in lecture on Thursdays• We have sent out instructions for students who cannot attend

Thursday lectures• One written or coding quiz score will be dropped

Page 76: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

• Written quizzes will be in lecture on Thursdays• We have sent out instructions for students who cannot attend

Thursday lectures• One written or coding quiz score will be dropped

• This class is not curved!

Page 77: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few grading details

• 10 homework assignments, 3 points each• Can make up points from one homework with surveys

• 12 (graded) lab assignments, 2 points each• Two lowest lab scores will be dropped

• Written quizzes will be in lecture on Thursdays• We have sent out instructions for students who cannot attend

Thursday lectures• One written or coding quiz score will be dropped

• This class is not curved!• Collaboration, not competition

Page 78: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

Page 79: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

Page 80: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

Page 81: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

Page 82: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

• This means that:

Page 83: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

• This means that:• You cannot copy or use code from anyone except your partner

Page 84: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

• This means that:• You cannot copy or use code from anyone except your partner• You cannot share your code with anyone except your partner

Page 85: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

• This means that:• You cannot copy or use code from anyone except your partner• You cannot share your code with anyone except your partner

• Share and discuss ideas, not code

Page 86: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

The limits of collaboration

• Everyone should give and receive help, because everyone benefits and learns

• There is only one rule:

• Your code is yours, and yours only.

• This means that:• You cannot copy or use code from anyone except your partner• You cannot share your code with anyone except your partner

• Share and discuss ideas, not code• Build good habits now!

Page 87: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

Page 88: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates

Page 89: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates• Teaching is the best way to learn

Page 90: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates• Teaching is the best way to learn

• Ask and answer questions on Piazza

Page 91: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates• Teaching is the best way to learn

• Ask and answer questions on Piazza

• Use the course staff! We’re here to help you learn

Page 92: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates• Teaching is the best way to learn

• Ask and answer questions on Piazza

• Use the course staff! We’re here to help you learn• Labs and office hours are the perfect time to talk to

the lecturers, TAs, tutors, and lab assistants

Page 93: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Getting help

• Discuss everything in the course, except exams, with your partner and your classmates• Teaching is the best way to learn

• Ask and answer questions on Piazza

• Use the course staff! We’re here to help you learn• Labs and office hours are the perfect time to talk to

the lecturers, TAs, tutors, and lab assistants• Lab assistants will also be available for checkoffs

during labs

Page 94: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

Page 95: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

Page 96: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:

Page 97: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

Page 98: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs

Page 99: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs• There is no curve! All of you can get an A+

Page 100: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs• There is no curve! All of you can get an A+

• Cheating

Page 101: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs• There is no curve! All of you can get an A+

• Cheating• There is a community of staff and students that want

you to succeed, and will help you succeed

Page 102: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs• There is no curve! All of you can get an A+

• Cheating• There is a community of staff and students that want

you to succeed, and will help you succeed

• The most important course policy is learning

Page 103: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

A few last thoughts

• Find all the course details and news on cs61a.org

• The most important course policy is not:• Grading

• 75% of students in this course receive As and Bs• There is no curve! All of you can get an A+

• Cheating• There is a community of staff and students that want

you to succeed, and will help you succeed

• The most important course policy is learning• Learn a lot, have fun, and welcome to 61A!

Page 104: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

And, conveniently, an introduction to Python

An Introduction to Programming

Page 105: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Course organization

Page 106: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Page 107: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction

Page 108: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions

Page 109: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data

Page 110: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data Mutability

Page 111: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data Mutability

Objects

Page 112: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data Mutability

Objects Interpretation

Page 113: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data Mutability

Objects Interpretation Paradigms

Page 114: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

Course organization

Introduction Functions Data Mutability

Objects Interpretation Paradigms Applications

Page 115: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

• This week (Introduction), the goals are:

Course organization

Introduction Functions Data Mutability

Objects Interpretation Paradigms Applications

Page 116: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

• This week (Introduction), the goals are:• To learn the fundamentals of programming

Course organization

Introduction Functions Data Mutability

Objects Interpretation Paradigms Applications

Page 117: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

• Every week will center around a theme, and have a specific set of goals.

• This week (Introduction), the goals are:• To learn the fundamentals of programming• To become comfortable with Python

Course organization

Introduction Functions Data Mutability

Objects Interpretation Paradigms Applications

Page 118: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

Page 119: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

Page 120: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

• Expressions in programs evaluate to values

Page 121: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

• Expressions in programs evaluate to values• Primitive expressions evaluate directly to values with

minimal work needed

Page 122: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

• Expressions in programs evaluate to values• Primitive expressions evaluate directly to values with

minimal work needed

• Operators combine primitives expressions into more complex expressions

Page 123: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

• Expressions in programs evaluate to values• Primitive expressions evaluate directly to values with

minimal work needed

• Operators combine primitives expressions into more complex expressions

• The Python interpreter evaluates expressions and displays their values

Page 124: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

What’s in a program?

• Programs work by manipulating values

• Expressions in programs evaluate to values• Primitive expressions evaluate directly to values with

minimal work needed

• Operators combine primitives expressions into more complex expressions

• The Python interpreter evaluates expressions and displays their values

(demo)

Page 125: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 126: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 127: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 128: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 129: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 130: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 131: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 132: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 133: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 134: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 135: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 136: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 137: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 138: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions

Page 139: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Mathematical expressions (demo)

Page 140: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

Page 141: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

add ( 2 , 3 )

Page 142: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

add ( 2 , 3 )operator

Page 143: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

add ( 2 , 3 )operator operands

Page 144: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

• In a call expression, the operator and operands themselves are expressions

add ( 2 , 3 )operator operands

Page 145: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

• In a call expression, the operator and operands themselves are expressions

• To evaluate this call expression:

add ( 2 , 3 )operator operands

Page 146: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

• In a call expression, the operator and operands themselves are expressions

• To evaluate this call expression:

1. Evaluate the operator to get a function

add ( 2 , 3 )operator operands

Page 147: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

• In a call expression, the operator and operands themselves are expressions

• To evaluate this call expression:

1. Evaluate the operator to get a function

2. Evaluate the operands to get its values

add ( 2 , 3 )operator operands

Page 148: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Call expressions

• In a call expression, the operator and operands themselves are expressions

• To evaluate this call expression:

1. Evaluate the operator to get a function

2. Evaluate the operands to get its values

3. Apply the function to the values of the operands to get the final value

add ( 2 , 3 )operator operands

Page 149: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Nested call expressions

Page 150: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Nested call expressions

add(add(2, mul(4, 6)), mul(3, 5))

Page 151: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Nested call expressions

• What does this call expression evaluate to?

add(add(2, mul(4, 6)), mul(3, 5))

Page 152: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Nested call expressions

• What does this call expression evaluate to?

• What are the steps that the Python interpreter goes through to evaluate this expression?

add(add(2, mul(4, 6)), mul(3, 5))

Page 153: Lecture 1: Introductioninst.eecs.berkeley.edu/~cs61a/su16/assets/slides/01-Introduction_full.pdfCourse overview • Lectures: Mon-Thurs, 11am-12:30pm, 2050 VLSB • Labs: the most

Shakespeare demo!

The Power of Python