CSE 373: Final thoughts Michael Lee Friday, Mar 9, 2018 1 - - PowerPoint PPT Presentation

cse 373 final thoughts
SMART_READER_LITE
LIVE PREVIEW

CSE 373: Final thoughts Michael Lee Friday, Mar 9, 2018 1 - - PowerPoint PPT Presentation

CSE 373: Final thoughts Michael Lee Friday, Mar 9, 2018 1 Logistics Reminder: 2 Project 4 due tomorrow Final review sessions: Monday, Mar 12: EEB 125, 4:30 to 6:30 Tuesday, Mar 13: EEB 105, 4:30 to 6:30 Final on Thursday,


slide-1
SLIDE 1

CSE 373: Final thoughts

Michael Lee Friday, Mar 9, 2018

1

slide-2
SLIDE 2

Logistics

Reminder: ◮ Project 4 due tomorrow ◮ Final review sessions:

◮ Monday, Mar 12: EEB 125, 4:30 to 6:30 ◮ Tuesday, Mar 13: EEB 105, 4:30 to 6:30

◮ Final on Thursday, Mar 15, 2:30 to 4:30 in Gowen 301

2

slide-3
SLIDE 3

Logistics

Shortened offjce hours next week: ◮ Monday: 2:30 to 4:30 in the 4th fmoor breakout ◮ Tuesday: 2:30 to 4:30 in CSE 216 ◮ Wednesday: 2:30 to 4:30 in CSE 216 ◮ No offjce hours Thursday and Friday (Why CSE 216 on Tuesday and Wednesday? Because literally every other room is booked those two days.)

3

slide-4
SLIDE 4

Logistics

Shortened offjce hours next week: ◮ Monday: 2:30 to 4:30 in the 4th fmoor breakout ◮ Tuesday: 2:30 to 4:30 in CSE 216 ◮ Wednesday: 2:30 to 4:30 in CSE 216 ◮ No offjce hours Thursday and Friday (Why CSE 216 on Tuesday and Wednesday? Because literally every other room is booked those two days.)

3

slide-5
SLIDE 5

Victory lap

Hooray! We made it!

Today:

  • 1. Looking back
  • 2. Course goals
  • 3. Now what?
  • 4. Final questions?

4

slide-6
SLIDE 6

Victory lap

Hooray! We made it!

Today:

  • 1. Looking back
  • 2. Course goals
  • 3. Now what?
  • 4. Final questions?

4

slide-7
SLIDE 7

Victory lap

But fjrst, big thanks to your TAs!

Alan Tan Andrew Li Joseph Wunderlich Justin Sievers Kevin Du Kimberly Bautista Meredith Wu Valerie Liao Vivian Lappenbusch

5

slide-8
SLIDE 8

Victory lap

And also... thank you!

This is a challenging course, with a lot of material, covered in a short span of time. I’m really impressed with how much everybody has progressed and the work everybody put in. And also, thank you for putting up with me! This is my fjrst time teaching, and I appreciate everybody’s patience when things get messed up or delayed.

6

slide-9
SLIDE 9

Victory lap

And also... thank you!

This is a challenging course, with a lot of material, covered in a short span of time. I’m really impressed with how much everybody has progressed and the work everybody put in. And also, thank you for putting up with me! This is my fjrst time teaching, and I appreciate everybody’s patience when things get messed up or delayed.

6

slide-10
SLIDE 10

Victory lap

Relatedly, course evals!

https://uw.iasystem.org/survey/188762

There are defjnitely some things I would change about this course, and I’d also welcome any feedback or suggestions you have!

7

slide-11
SLIDE 11

Victory lap

Relatedly, course evals!

https://uw.iasystem.org/survey/188762

There are defjnitely some things I would change about this course, and I’d also welcome any feedback or suggestions you have!

7

slide-12
SLIDE 12

Looking back...

Here are the fjrst few slides from the fjrst day of the quarter...

8

slide-13
SLIDE 13

CSE 143

Basic techniques for storing and manipulating data ◮ “Expanding arrays” ◮ Nodes and pointers/references ◮ Trees and recursion How to use pre-made data structures Using standard Java collections (Lists, Stacks, Queues, Sets, Maps...) Techniques for organizing code Refactoring, coding style Client vs implementer

9

slide-14
SLIDE 14

CSE 143

Basic techniques for storing and manipulating data ◮ “Expanding arrays” ◮ Nodes and pointers/references ◮ Trees and recursion How to use pre-made data structures ◮ Using standard Java collections ◮ (Lists, Stacks, Queues, Sets, Maps...) Techniques for organizing code Refactoring, coding style Client vs implementer

9

slide-15
SLIDE 15

CSE 143

Basic techniques for storing and manipulating data ◮ “Expanding arrays” ◮ Nodes and pointers/references ◮ Trees and recursion How to use pre-made data structures ◮ Using standard Java collections ◮ (Lists, Stacks, Queues, Sets, Maps...) Techniques for organizing code ◮ Refactoring, coding style ◮ Client vs implementer

9

slide-16
SLIDE 16

CSE 373

Content ◮ Learn new techniques ◮ Learn how exactly data structures work ◮ How to precisely analyze algorithms Core skills Design decisions, tradeofgs, and critical thinking Abstraction and implementation Communication: being able to justify your decisions Incidental skills Debugging and testing Exposure to tools used in the industry

10

slide-17
SLIDE 17

CSE 373

Content ◮ Learn new techniques ◮ Learn how exactly data structures work ◮ How to precisely analyze algorithms Core skills ◮ Design decisions, tradeofgs, and critical thinking ◮ Abstraction and implementation ◮ Communication: being able to justify your decisions Incidental skills Debugging and testing Exposure to tools used in the industry

10

slide-18
SLIDE 18

CSE 373

Content ◮ Learn new techniques ◮ Learn how exactly data structures work ◮ How to precisely analyze algorithms Core skills ◮ Design decisions, tradeofgs, and critical thinking ◮ Abstraction and implementation ◮ Communication: being able to justify your decisions Incidental skills ◮ Debugging and testing ◮ Exposure to tools used in the industry

10

slide-19
SLIDE 19

CSE 373

Big picture: ◮ Give you the tools to think critically about code and make decisions Give you a taste of how to approach and build large programs Give you a strong foundation for whatever tech-related thing you want to do next

11

slide-20
SLIDE 20

CSE 373

Big picture: ◮ Give you the tools to think critically about code and make decisions ◮ Give you a taste of how to approach and build large programs Give you a strong foundation for whatever tech-related thing you want to do next

11

slide-21
SLIDE 21

CSE 373

Big picture: ◮ Give you the tools to think critically about code and make decisions ◮ Give you a taste of how to approach and build large programs ◮ Give you a strong foundation for whatever tech-related thing you want to do next

11

slide-22
SLIDE 22

Success?

Did we succeed? I hope so – hopefully you agree. (And if not, see course evals.) Hopefully, this got you excited for more, and CSE 373 won’t be your last exposure to computer science. If so...

12

slide-23
SLIDE 23

Success?

Did we succeed? I hope so – hopefully you agree. (And if not, see course evals.) Hopefully, this got you excited for more, and CSE 373 won’t be your last exposure to computer science. If so...

12

slide-24
SLIDE 24

Success?

Did we succeed? I hope so – hopefully you agree. (And if not, see course evals.) Hopefully, this got you excited for more, and CSE 373 won’t be your last exposure to computer science. If so...

12

slide-25
SLIDE 25

Success?

Did we succeed? I hope so – hopefully you agree. (And if not, see course evals.) Hopefully, this got you excited for more, and CSE 373 won’t be your last exposure to computer science. If so...

12

slide-26
SLIDE 26

What’s next?

What’s next?

13

slide-27
SLIDE 27

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... Learn more about things like locality and managing memory Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-28
SLIDE 28

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) ◮ Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... Learn more about things like locality and managing memory Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-29
SLIDE 29

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) ◮ Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... Learn more about things like locality and managing memory Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-30
SLIDE 30

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) ◮ Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... ◮ Learn more about things like locality and managing memory Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-31
SLIDE 31

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) ◮ Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... ◮ Learn more about things like locality and managing memory ◮ Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-32
SLIDE 32

Difgerent pathways

If you wanted to... ◮ Want to learn about popular tools used in the industry (e.g. writing shell scripts in Linux, using version control and git) ◮ Understand how exactly your hardware and code interacts, on a low level ...then take CSE 374, Intermediate Programming Concepts and Tools If you want to go even deeper, and... ◮ Learn more about things like locality and managing memory ◮ Learn how operating systems work, on a high level ...then take CSE 410, Computer Systems

14

slide-33
SLIDE 33

Difgerent pathways

If you wanted to... ◮ Learn new strategies for problem-solving and writing code Learn how programming languages actually work (e.g. how compilers and interpreters work) ...then take CSE 413, Programming Languages.

15

slide-34
SLIDE 34

Difgerent pathways

If you wanted to... ◮ Learn new strategies for problem-solving and writing code ◮ Learn how programming languages actually work (e.g. how compilers and interpreters work) ...then take CSE 413, Programming Languages.

15

slide-35
SLIDE 35

Difgerent pathways

If you wanted to... ◮ Learn new strategies for problem-solving and writing code ◮ Learn how programming languages actually work (e.g. how compilers and interpreters work) ...then take CSE 413, Programming Languages.

15

slide-36
SLIDE 36

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? Python (“executable pseudocode”) C# (“Java done right”) HTML/CSS/Javascript (“for making websites/webapps”) C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-37
SLIDE 37

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) C# (“Java done right”) HTML/CSS/Javascript (“for making websites/webapps”) C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-38
SLIDE 38

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) ◮ C# (“Java done right”) HTML/CSS/Javascript (“for making websites/webapps”) C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-39
SLIDE 39

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) ◮ C# (“Java done right”) ◮ HTML/CSS/Javascript (“for making websites/webapps”) C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-40
SLIDE 40

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) ◮ C# (“Java done right”) ◮ HTML/CSS/Javascript (“for making websites/webapps”) ◮ C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-41
SLIDE 41

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) ◮ C# (“Java done right”) ◮ HTML/CSS/Javascript (“for making websites/webapps”) ◮ C++ (“if you want full control”) Or maybe a more non-conventional one? Haskell Racket Rust Prolog

16

slide-42
SLIDE 42

Difgerent pathways

Also, try learning a new programming language! Maybe another mainstream and popular one? ◮ Python (“executable pseudocode”) ◮ C# (“Java done right”) ◮ HTML/CSS/Javascript (“for making websites/webapps”) ◮ C++ (“if you want full control”) Or maybe a more non-conventional one? ◮ Haskell ◮ Racket ◮ Rust ◮ Prolog

16

slide-43
SLIDE 43

Difgerent pathways

If you wanted to... ◮ Learn how to interact with and tune databases Learn about the core concepts of parallelism (how to sanely manage code where multiple programs are running at the same time) Learn how to manage large amounts of data (more data then you can fjt in RAM? More data then you can fjt on a single computer?) ...then take CSE 414, Introduction to Database Systems.

17

slide-44
SLIDE 44

Difgerent pathways

If you wanted to... ◮ Learn how to interact with and tune databases ◮ Learn about the core concepts of parallelism (how to sanely manage code where multiple programs are running at the same time) Learn how to manage large amounts of data (more data then you can fjt in RAM? More data then you can fjt on a single computer?) ...then take CSE 414, Introduction to Database Systems.

17

slide-45
SLIDE 45

Difgerent pathways

If you wanted to... ◮ Learn how to interact with and tune databases ◮ Learn about the core concepts of parallelism (how to sanely manage code where multiple programs are running at the same time) ◮ Learn how to manage large amounts of data (more data then you can fjt in RAM? More data then you can fjt on a single computer?) ...then take CSE 414, Introduction to Database Systems.

17

slide-46
SLIDE 46

Difgerent pathways

If you wanted to... ◮ Learn how to interact with and tune databases ◮ Learn about the core concepts of parallelism (how to sanely manage code where multiple programs are running at the same time) ◮ Learn how to manage large amounts of data (more data then you can fjt in RAM? More data then you can fjt on a single computer?) ...then take CSE 414, Introduction to Database Systems.

17

slide-47
SLIDE 47

Difgerent pathways

If you wanted to... ◮ Learn about artifjcial intelligence and machine learning Something something self-driving cars Learn how to write programs that take data and automatically learn how to make decisions based on that data Learn how to combine statistics and computer science ...then take: CSE 415, Introduction to Artifjcial Intelligence CSE 416, Introduction to Machine Learning

18

slide-48
SLIDE 48

Difgerent pathways

If you wanted to... ◮ Learn about artifjcial intelligence and machine learning ◮ Something something self-driving cars Learn how to write programs that take data and automatically learn how to make decisions based on that data Learn how to combine statistics and computer science ...then take: CSE 415, Introduction to Artifjcial Intelligence CSE 416, Introduction to Machine Learning

18

slide-49
SLIDE 49

Difgerent pathways

If you wanted to... ◮ Learn about artifjcial intelligence and machine learning ◮ Something something self-driving cars ◮ Learn how to write programs that take data and automatically learn how to make decisions based on that data Learn how to combine statistics and computer science ...then take: CSE 415, Introduction to Artifjcial Intelligence CSE 416, Introduction to Machine Learning

18

slide-50
SLIDE 50

Difgerent pathways

If you wanted to... ◮ Learn about artifjcial intelligence and machine learning ◮ Something something self-driving cars ◮ Learn how to write programs that take data and automatically learn how to make decisions based on that data ◮ Learn how to combine statistics and computer science ...then take: CSE 415, Introduction to Artifjcial Intelligence CSE 416, Introduction to Machine Learning

18

slide-51
SLIDE 51

Difgerent pathways

If you wanted to... ◮ Learn about artifjcial intelligence and machine learning ◮ Something something self-driving cars ◮ Learn how to write programs that take data and automatically learn how to make decisions based on that data ◮ Learn how to combine statistics and computer science ...then take: ◮ CSE 415, Introduction to Artifjcial Intelligence ◮ CSE 416, Introduction to Machine Learning

18

slide-52
SLIDE 52

Difgerent pathways

If you wanted to... ◮ Learn more about the underlying theory behind data structures and algorithms Learn about more complex algorithms, how to design algorithms Learn more about things like P vs NP ...then take CSE 417, Algorithms and Computational Complexity

19

slide-53
SLIDE 53

Difgerent pathways

If you wanted to... ◮ Learn more about the underlying theory behind data structures and algorithms ◮ Learn about more complex algorithms, how to design algorithms Learn more about things like P vs NP ...then take CSE 417, Algorithms and Computational Complexity

19

slide-54
SLIDE 54

Difgerent pathways

If you wanted to... ◮ Learn more about the underlying theory behind data structures and algorithms ◮ Learn about more complex algorithms, how to design algorithms ◮ Learn more about things like P vs NP ...then take CSE 417, Algorithms and Computational Complexity

19

slide-55
SLIDE 55

Difgerent pathways

If you wanted to... ◮ Learn more about the underlying theory behind data structures and algorithms ◮ Learn about more complex algorithms, how to design algorithms ◮ Learn more about things like P vs NP ...then take CSE 417, Algorithms and Computational Complexity

19

slide-56
SLIDE 56

Difgerent pathways

If you wanted to learn how to build websites (both frontend and backend)... ...then take either CSE 154, INFO 343, or INFO 344. Or try learning on your own! You can probably self-teach yourself enough to make a basic website over a weekend. (Writing something more complex will of course take longer.)

20

slide-57
SLIDE 57

Difgerent pathways

If you wanted to learn how to build websites (both frontend and backend)... ...then take either CSE 154, INFO 343, or INFO 344. Or try learning on your own! You can probably self-teach yourself enough to make a basic website over a weekend. (Writing something more complex will of course take longer.)

20

slide-58
SLIDE 58

Difgerent pathways

If you wanted to learn how to build websites (both frontend and backend)... ...then take either CSE 154, INFO 343, or INFO 344. Or try learning on your own! You can probably self-teach yourself enough to make a basic website over a weekend. (Writing something more complex will of course take longer.)

20

slide-59
SLIDE 59

Difgerent pathways

In fact, you can learn many difgerent things by yourself! Learn how to use tools like Git Write an Android app (using Java) Write a video game (using Unity? using Java?) Buy a Raspberry Pi or an Arduino and start messing around with it Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-60
SLIDE 60

Difgerent pathways

In fact, you can learn many difgerent things by yourself! ◮ Learn how to use tools like Git Write an Android app (using Java) Write a video game (using Unity? using Java?) Buy a Raspberry Pi or an Arduino and start messing around with it Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-61
SLIDE 61

Difgerent pathways

In fact, you can learn many difgerent things by yourself! ◮ Learn how to use tools like Git ◮ Write an Android app (using Java) Write a video game (using Unity? using Java?) Buy a Raspberry Pi or an Arduino and start messing around with it Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-62
SLIDE 62

Difgerent pathways

In fact, you can learn many difgerent things by yourself! ◮ Learn how to use tools like Git ◮ Write an Android app (using Java) ◮ Write a video game (using Unity? using Java?) Buy a Raspberry Pi or an Arduino and start messing around with it Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-63
SLIDE 63

Difgerent pathways

In fact, you can learn many difgerent things by yourself! ◮ Learn how to use tools like Git ◮ Write an Android app (using Java) ◮ Write a video game (using Unity? using Java?) ◮ Buy a Raspberry Pi or an Arduino and start messing around with it Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-64
SLIDE 64

Difgerent pathways

In fact, you can learn many difgerent things by yourself! ◮ Learn how to use tools like Git ◮ Write an Android app (using Java) ◮ Write a video game (using Unity? using Java?) ◮ Buy a Raspberry Pi or an Arduino and start messing around with it ◮ Learn how to automate boring things! (Google “Automate the Boring Stufg”)

21

slide-65
SLIDE 65

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

“Writing android apps in Java” “Learning Python” “How to write a simple compiler” “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-66
SLIDE 66

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

“Writing android apps in Java” “Learning Python” “How to write a simple compiler” “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-67
SLIDE 67

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

“Writing android apps in Java” “Learning Python” “How to write a simple compiler” “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-68
SLIDE 68

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

◮ “Writing android apps in Java” ◮ “Learning Python” ◮ “How to write a simple compiler” ◮ “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-69
SLIDE 69

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

◮ “Writing android apps in Java” ◮ “Learning Python” ◮ “How to write a simple compiler” ◮ “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-70
SLIDE 70

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

◮ “Writing android apps in Java” ◮ “Learning Python” ◮ “How to write a simple compiler” ◮ “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-71
SLIDE 71

Learning new things

...but how? It’s both easier and harder then it sounds:

  • 1. Google and fjnd resources on the topic you want to self-teach:

◮ “Writing android apps in Java” ◮ “Learning Python” ◮ “How to write a simple compiler” ◮ “Machine learning tutorial”

  • 2. Look through a few resources and eliminate the ones that

seem sloppy

  • 3. Work through the tutorial and practice as you go
  • 4. Try actively applying what you’ve learned to work on projects

22

slide-72
SLIDE 72

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google Coursera: lots of good online courses Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list Try contributing to open source; try attending hackathons StackOverfmow: pick interesting tags, sort by top, and read Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-73
SLIDE 73

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google ◮ Coursera: lots of good online courses Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list Try contributing to open source; try attending hackathons StackOverfmow: pick interesting tags, sort by top, and read Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-74
SLIDE 74

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google ◮ Coursera: lots of good online courses ◮ Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list Try contributing to open source; try attending hackathons StackOverfmow: pick interesting tags, sort by top, and read Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-75
SLIDE 75

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google ◮ Coursera: lots of good online courses ◮ Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list ◮ Try contributing to open source; try attending hackathons StackOverfmow: pick interesting tags, sort by top, and read Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-76
SLIDE 76

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google ◮ Coursera: lots of good online courses ◮ Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list ◮ Try contributing to open source; try attending hackathons ◮ StackOverfmow: pick interesting tags, sort by top, and read Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-77
SLIDE 77

Learning new things

General resources: ◮ You can fjnd tutorials on almost any topic via google ◮ Coursera: lots of good online courses ◮ Google “open source CS curriculum” or “what every CS major should know” if you want a more curated list ◮ Try contributing to open source; try attending hackathons ◮ StackOverfmow: pick interesting tags, sort by top, and read ◮ Sporadically browse Hacker News or /r/programming

(Warning: people can often be opinionated, and sometimes a little pretentious, but you can pick up some interesting nuggests)

23

slide-78
SLIDE 78

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

If you don’t, you’re only fooling yourself. Prefer active learning, not passive learning. Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-79
SLIDE 79

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

◮ If you don’t, you’re only fooling yourself. ◮ Prefer active learning, not passive learning. ◮ Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-80
SLIDE 80

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

◮ If you don’t, you’re only fooling yourself. ◮ Prefer active learning, not passive learning. ◮ Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-81
SLIDE 81

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

◮ If you don’t, you’re only fooling yourself. ◮ Prefer active learning, not passive learning. ◮ Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

◮ Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-82
SLIDE 82

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

◮ If you don’t, you’re only fooling yourself. ◮ Prefer active learning, not passive learning. ◮ Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

◮ Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-83
SLIDE 83

Learning new things

Core takeaways:

  • 1. Prioritize practice: apply and use what you’re learning

◮ If you don’t, you’re only fooling yourself. ◮ Prefer active learning, not passive learning. ◮ Work on projects (personal, coursework, for clubs, research...)

  • 2. Take charge of your own education

◮ Don’t wait for people to teach you things; go out and teach it to yourself.

  • 3. You can now learn anything in CS with enough efgort

◮ This class was designed to give you the foundation to learn whatever you want to learn about in CS or tech. ◮ Don’t let yourself be intimidated or discouraged. Break it down, take it one step at a time, ask lots of questions, and don’t give up.

24

slide-84
SLIDE 84

Questions?

Any questions?

25