A Note for those Stumbling on these Slides (Hi!)
CS61B: 2018
Lecture 1:
61B Overview
What is 61B about?
Assumes solid foundation in programming fundamentals, including:
Why Study Algorithms or Data Structures?
Sp18
Why Study Algorithms or Data Structures?
Daily life is supported by them.
Why Study Algorithms or Data Structures?
Daily life is supported by them.
Why Study Algorithms or Data Structures?
Major driver of current progress (?) of our civilization (see CS195 for more).
Why Study Algorithms or Data Structures?
To become a better programmer.
“The difference between a bad programmer and a good one is whether [the programmer] considers code or data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” - Linus Torvalds (Creator of Linux)
Why Study Algorithms or Data Structures?
For intellectual stimulation:
Possible to draw without picking up pencil or going back over any lines.
Impossible.
Why Study Algorithms or Data Structures?
To understand the universe. Science is increasingly about simulation and complex data analysis rather than simple observations and clean equations:
Why Study Algorithms or Data Structures?
To
create
beautiful
things.
Questions for You
What do you hope / expect to learn from this class? Why are you taking it?
Who Are You?
Who Are We?
Instructor: Josh Hug (me) hug@cs.berkeley.edu 779 Soda
GSIs (and a GSR):
Who Are We (continued)?
And 91 (at current count) academic interns: Kevin Ko, Boris Yue, Zoe Plaxco, Jingjing Jia, Alan Nguyen, Diana Tu, Samuel Shen, Angela Xiao, Nicolas Raga, Joshua Lin, Tanvee Desai, Stephen Zhou, Nico Camerino, Max Yuan, Moses Kim, Daniel Nguyen, Jasper Gan, Jennifer Xie, Jackie Li, Kevin Deguzman, Shayan Askarian Namaghi, Yu Chen, Janani Vijaykumar, Yiling Kao, Yowsean Li, Justin Lin, Jim Hollingworth, Zipeng Qin, Doreene Kang, Andre Andreassa, Jim Won, Katherine Liu, Min Jae Lee, Elizabeth Avelar Mercado, Natasha Wong, Harsha Nandiwada, Jack Ji, Seung Jin Yang, Yifan Ning, Adel Setoodehnia, Adi Zimmerman, Gabrielle Delforge, Anastasia Vela, Amy Mendelsohn, Shawn Yang, Yuan Gao, Emily Hill, Emily Lan, Rishab Kedia, Daniel Lin, Candace Chiang, Yihui Zhu, Saurav Chhatrapati, Jason Ma, Vibha Seshadri, Robert Chen, Kaan Dogusoy, Rena Chen, Emma D'Esopo, Daniel Li, Nasim Binnur , Brian DeLeonardis, Vera Wang, Camille Harris, Suren Gunturu, Benny, Julianna White, Duy Nguyen, Xu-Bin Kuang, Qian Pan, Lawrence Chen, Aura Barrera, Shruthi Chockkalingam, Auni Bagchi, Tina Zhao, Kevin Chien, Austin Cheng, Kyle Schweizer, Tony Liu, Fabiola Lopez, Kieran Davis, Brian Liao, Michelle Lee, Alex Yi, Jessica Gao, Andrew Raguse, Sai Mandava, Stella Wang, Sydney Yang, Robert Iancu, George Zeng
As well as 16 tutors, TBD.
Learning Philosophy
The Manner in Which Learning Occurs (TMWLO)
TMWLO: A Small Minority
Lectures
Reading
TMWLO: The Vast Majority
Discussion Section, Vitamins, and Study Guides:
Labs, Weekly(ish) Homework, and Your Own Experimentation
Projects
Course Logistics (Condensed)
See Slides at End / Online Video for the Full Version
Places to Get Information
Official Course Resources
Unofficial: Google, Stack Overflow, other programming courses on the web, various online documentation, etc.
Logistical Details
61B 2.5 - Course Structure
Phase 1: Programming Intensive Introduction to Java.
Phase 2: Advanced Programming
61B 2.5 - Course Structure
Phase 3: Data Structures and Algorithms
See calendar at http://datastructur.es for more.
Labs and Discussion
Attendance for lab/discussion is not required, but can earn “gold points” (extra credit) by attending discussion.
Labs:
HWs and Projects
5 standard homeworks and 2 makeup homeworks.
Projects:
Vitamins and Study Guides (for conceptual understanding)
Short lecture exercises, a.k.a vitamins.
Study guides for each lecture.
Exams
Exam dates (midterms tentative until room deadlines confirmed):
Course Grade
Breakdown: 1,584 points total. Letter grade will be determined by your total.
Grades are not curved, i.e. they are not based on your relative performance. In past semesters, grade bin cutoffs have not budged (or if they did, just barely).
Plus occasional opportunities for extra credit for filling out course feedback surveys and projects 1, 2, and 3.
Course Pacing
We will start off very fast.
Hello World
(See guide for link to the code I write today)
(Might be a little boring if you know Java already)
Java and Object Orientation
Java is an object oriented language with strict requirements:
*: This is not completely true, e.g. we can also declare “interfaces” in .Java files that may contain code. We’ll cover these later.
Java and Static Typing
Java is statically typed!
Reflections on Static Typing
The Good:
�The Bad:
What’s Next
This week:
Course Logistics (Full Version)
Places to Get Information
Official Course Resources
Unofficial: Google, Stack Overflow, other programming courses on the web, various online documentation, etc.
Logistical Details
61B 2.5 - Course Structure
Phase 1: Programming Intensive Introduction to Java.
Phase 2: Advanced Programming
61B 2.5 - Course Structure
Phase 3: Data Structures and Algorithms
See calendar at http://datastructur.es for more.
Lab Logistics
14 total labs, worth 8 points each [96 points total].
Discussion Logistics
What’s a gold point?
HWs
Homework breakdown:
Due dates vary. See calendar.
7 total required homeworks, worth 32 points each [160 points total].
Vitamins and Study Guides (for conceptual understanding)
Each week, there will be a series of exercises (vitamins) for that week’s lectures.
For each lecture, there is also a “study guide”.
Projects
Four projects
Projects 1, 2, and 3 will have extra credit opportunities.
Exams
Exams will be “hard”
Exam dates (midterms tentative until room deadlines confirmed):
Course Grade
Breakdown: 1,584 points total.
Grades are not curved, i.e. they are not based on your relative performance. In past semesters, grade bin cutoffs have not budged (or if they did, just barely).
Plus occasional opportunities for extra credit for filling out course feedback surveys and projects 1, 2, and 3.
Course Pacing
We will start off very fast.
Citations
Real-time MRI by the New Scientist: https://www.youtube.com/watch?v=8XQlIvlWqpo
Self-driving car image by The Guardian:�http://www.theguardian.com/technology/2014/may/28/google-self-driving-car-how-does-it-work
Dance Dance Revolution videos from:
https://www.youtube.com/watch?v=OVtnnIifaU8
https://www.youtube.com/watch?v=12lSScKSx20
Questions for You [first lecture]
What do you hope / expect to learn from this class? Why are you taking it?