A Note for those Stumbling on these Slides (Hi!)
Announcement
If you want to chat after lecture, meet me in the lobby, don’t climb on the stage, they will be mad. Also the Kronos Quartet’s stuff could get destroyed and they have lawyers and deep seething anger for youth (I made that last part up).
CS61B: 2019
Lecture 1:
61B Overview
What is 61B about?
Assumes solid foundation in programming fundamentals, including:
Why Study Algorithms or Data Structures?
Sp19
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.
Why Study Algorithms or Data Structures?
To become a better programmer.
Being an efficient programmer means using the right data structures and algorithms for the job.
“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?
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
Why Study Algorithms or Data Structures?
As an end unto itself.
Possible to draw without picking up pencil or going back over any lines.
Impossible.
Question 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:
Who Are We (continued)?
Tutors: Aakash Shukla, Ajuney Hora, Akshit Annadi, Alan Ton, Alex Kassil, Anirvin Sikha, Anson Tsai, Arjun Sahai, Darren Huang, Emily Zhong, George Zhou, Hannah Yan, Joshua Yang, Mahesh Murag, Megan Kawakami, Mounica Putrevu, Nathan Miller, Noah Kuo, Oscar Ortega, Ramsey Mardini, Rene Lee, Ryan Nuqui, Ryan Tran, Ryan Tseng, Shriya Vohra, Shubha Jagannatha, Uma Krishnan, Yiling Kao
Who Are We (continued)?
Academic interns: Kevin Ko, Jeffrey Hong, Andrew Wang, Amol Pant, Ju Sheen Kim, Amanuel Yitbarek, Dylan Tran, Richard Huang, Apoorva Prakash, Ethan Yeh, Ziqi Jin, Ikram Magzoub, Mher Torjyan, Ruhi Pudipeddi, Kelvin Ngo, Edmund Wang, John Siano, Alejandro A. Stefan Zavala, Prom Putthisri, Cliff Liu, Prateek Kher, Vlad Korsunenko, Stefano Colmignoli, Youqi Chen, Adya Putra Indera, Jie Chen, Ryan Lee, Emily Wang, John Markham, Alex Schedel, Arjun R Bharat, Harim Lee, Harry Song, Jun Jeon, Frederick Fan, Sean Lam, Jacqueline Chu, Connor Lafferty, Howard Ho, Sanchit Kapoor, Kunal Agarwal, Alice Lyu, Michael Chang, Haiwei Zhen, Monica Tang, Cindy Liu, Jiekun Liang, Yuanzhe Ying (Cody), Kevin Li, Ahir Datta, Salman Ahmad, Shivani Prabala, Caleb Kahookele, Amy Wang, Edward Sun, Emanuel Rew, Tarsus Lam, Ashwin Shanker, Soumya Avva, Tammy Truong, Eric Chen, Vatsal Bajaj, Jenny Song , Daniel Fan, Jason Kim, Benson Yuan, Jenna Dorse, Manula Dombagahawatta, Cheenar Gupte, Richard Padilla, David Ruan, Yash Vanvari, Winnie Zhang, Alfredo Andere V., Henry Leou, Asad Abbasi, Tianhao Chen, Yibin Li, Guoxin Yu, Karan Shah, Fei Cong, Brian Fu, Vikram Chandran, Juan Ramon Cai, Eric Ortiz, Eric Gan, Aleksander Petuskey, Yuan Xie, Devesh Rai, Felix Li, Alan Zhou, Theo Luan, Alex Cui, Kathleen Chang, Amitav Baruah, Kevin Nguyen, Yifan Zhang, Jesse Chen, Amy Hung, Akash Singhal, Nikhil Jain, Catherine Chi, Jonathan Pan, Yafei Liang, Carolyn Wang, Claire Ko, Octavian Sima, Xu Huang, Joshua Chen, Borhan Rafiq, Khoa Hoang, Joshua Samuel, Jerry Gong, Timothy Lee, Dilan Bhalla, Ryan Van, James Li, Jerome Wei, Willis Wang, Nicholas Li, Christine Luo, Calvin Chen, Shein Lin Phyo, Jaslyn Avila, John Lichtenberg, Won Ryu, Samarth Venkatasubramaniam, Kathy Li, Erica Grunfeld, Jacky Chow, Charlie Tian, Renhua Liu, George Wu, Raguvir Kunani, Fatema Yasini, Sreyas Narayanan, Evan Mei, Olivia Lee, Alexia Colmenero, Jimmy Xu, Dustin Chen, Yongming Ge, Auni Bagchi, Daniel Lujan, Woojin Ko, Devesh Agarwal, Ahmad Maarouf, Soung Bae Kim, Calvin Kwon, Zijin Cui, Lam Pham, Shahzar Rizvi, Ann Yoo Abbott, Vidhi Chander, Yiming Yang, Dylan Buer, Annie Wong, Shahroze Ranjha, Katniss Lee, Dave Kwon, William Tong, Eugene Lee, Beatriz Israde
Lab assistant letter distributions as generated by:
https://www.mtholyoke.edu/courses/quenell/s2003/ma139/js/count.html
Learning Philosophy
The Manner in Which Learning Occurs (TMWLO)
TMWLO: A Small Minority
Lectures
Reading
TMWLO: The Vast Majority
Discussion Section and Study Guides:
Labs, Homework, and Your Own Experimentation
Projects
Course Logistics
Places to Get Information
Official Course Resources
Unofficial: Google, Stack Overflow, other programming courses on the web, various online documentation, etc.
Logistical Details
61B 3.0 - Course Structure
Phase 1: Programming Intensive Introduction to Java.
61B 3.0 - Course Structure
Phase 2: Data Structures.
61B 3.0 - Course Structure
Phase 3: Algorithms and Software Engineering
See calendar at http://datastructur.es for more.
Labs and Discussion
Attendance for lab/discussion is not required, but can earn “pacing points” by attending discussion or lab.
Labs:
HWs and Projects
4 homeworks.
Projects:
Weekly Surveys and Study Guides
Weekly survey due every Sunday.
Study guides for each lecture.
Exams
Exam dates:
Course Grade
Breakdown: 3,152 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, my grade bin cutoffs have not moved much at all.
Plus extra credit for filling out pre-, mid-, and post- semester course surveys, also for turning in projects 2 and 3 early.
Plus gold points for going above and beyond on projects.
Lateness and Mentor GSIs
No late work will be accepted in the course. No hws/labs/projects are dropped.
During week 2, you will be pick a mentor GSI.
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!
Your 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?