CS109: Probability for Computer Scientists
While the initial foundations of computer science began in the world of discrete mathematics (after all, modern computers are digital in nature), recent years have seen a surge in the use of probability as a tool for the analysis and development of new algorithms and systems. As a result, it is becoming increasingly important for budding computer scientists to understand probability theory, both to provide new perspectives on existing ideas and to help further advance the field in new ways.
CS109: Probability for Computer Scientists starts by providing a fundamental grounding in combinatorics, and then quickly moves into the basics of probability theory. We will then cover many essential concepts in probability theory, including particular probability distributions, properties of probabilities, and mathematical tools for analysing probabilities. Finally, the last third of the class will focus on data analysis and machine learning as a means for seeing direct applications of probability in this exciting and quickly growing subfield of computer science. This is going to be a great quarter, and we are looking forward to the chance to teach you.
Course Topics
Here are the broad strokes of the course (in approximate order). More information is available on our Schedule page. We cover a very broad set of topics so that you are equipped with the probability and statistics you will see in your future CS studies!
- Counting and probability fundamentals
- Single-dimensional random variables
- Probabilistic models
- Uncertainty theory
- Parameter estimation
- Introduction to machine learning
Links
- Course: https://web.stanford.edu/class/cs109/
- Course Book: https://chrispiech.github.io/probabilityForComputerScientists/en/index.html
- Python for Probability: https://web.stanford.edu/class/archive/cs/cs109/cs109.1238/handouts/python.html
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #statistics #probability #stanford #machinelearning #dataanalysis #computerscience #help #mathematics
@data_science_weekly
While the initial foundations of computer science began in the world of discrete mathematics (after all, modern computers are digital in nature), recent years have seen a surge in the use of probability as a tool for the analysis and development of new algorithms and systems. As a result, it is becoming increasingly important for budding computer scientists to understand probability theory, both to provide new perspectives on existing ideas and to help further advance the field in new ways.
CS109: Probability for Computer Scientists starts by providing a fundamental grounding in combinatorics, and then quickly moves into the basics of probability theory. We will then cover many essential concepts in probability theory, including particular probability distributions, properties of probabilities, and mathematical tools for analysing probabilities. Finally, the last third of the class will focus on data analysis and machine learning as a means for seeing direct applications of probability in this exciting and quickly growing subfield of computer science. This is going to be a great quarter, and we are looking forward to the chance to teach you.
Course Topics
Here are the broad strokes of the course (in approximate order). More information is available on our Schedule page. We cover a very broad set of topics so that you are equipped with the probability and statistics you will see in your future CS studies!
- Counting and probability fundamentals
- Single-dimensional random variables
- Probabilistic models
- Uncertainty theory
- Parameter estimation
- Introduction to machine learning
Links
- Course: https://web.stanford.edu/class/cs109/
- Course Book: https://chrispiech.github.io/probabilityForComputerScientists/en/index.html
- Python for Probability: https://web.stanford.edu/class/archive/cs/cs109/cs109.1238/handouts/python.html
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #statistics #probability #stanford #machinelearning #dataanalysis #computerscience #help #mathematics
@data_science_weekly
Harvard CS50 (2023) – Full Computer Science University Course
This is CS50, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming, for concentrators and non-concentrators alike, with or without prior programming experience. (Two thirds of CS50 students have never taken CS before.) This course teaches you how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets inspired by the arts, humanities, social sciences, and sciences. More than teach you how to program in one language, this course teaches you how to program fundamentally and how to teach yourself new languages ultimately. The course starts with a traditional but omnipresent language called C that underlies today’s newer languages, via which you’ll learn not only about functions, variables, conditionals, loops, and more, but also about how computers themselves work underneath the hood, memory and all. The course then transitions to Python, a higher-level language that you’ll understand all the more because of C. Toward term’s end, the course introduces SQL, via which you can store data in databases, along with HTML, CSS, and JavaScript, via which you can create web and mobile apps alike. Course culminates in a final project.
Course Contents
⌨️ Lecture 0 - Scratch
⌨️ Lecture 1 - C
⌨️ Lecture 2 - Arrays
⌨️ Lecture 3 - Algorithms
⌨️ Lecture 4 - Memory
⌨️ Lecture 5 - Data Structures
⌨️ Lecture 6 - Python
⌨️ Lecture 7 - SQL
⌨️ Lecture 8 - HTML, CSS, JavaScript
⌨️ Lecture 9 - Flask
⌨️ Lecture 10 - Emoji
⌨️ Cybersecurity
Links:
- https://cs50.harvard.edu/x
- https://www.youtube.com/watch?v=LfaMVlDaQ24
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #cs #computerscience #harvard #algorithms #datastructures #datastructuresandalgorithms #python #sql #C #arrays
@data_science_weekly
This is CS50, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming, for concentrators and non-concentrators alike, with or without prior programming experience. (Two thirds of CS50 students have never taken CS before.) This course teaches you how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets inspired by the arts, humanities, social sciences, and sciences. More than teach you how to program in one language, this course teaches you how to program fundamentally and how to teach yourself new languages ultimately. The course starts with a traditional but omnipresent language called C that underlies today’s newer languages, via which you’ll learn not only about functions, variables, conditionals, loops, and more, but also about how computers themselves work underneath the hood, memory and all. The course then transitions to Python, a higher-level language that you’ll understand all the more because of C. Toward term’s end, the course introduces SQL, via which you can store data in databases, along with HTML, CSS, and JavaScript, via which you can create web and mobile apps alike. Course culminates in a final project.
Course Contents
⌨️ Lecture 0 - Scratch
⌨️ Lecture 1 - C
⌨️ Lecture 2 - Arrays
⌨️ Lecture 3 - Algorithms
⌨️ Lecture 4 - Memory
⌨️ Lecture 5 - Data Structures
⌨️ Lecture 6 - Python
⌨️ Lecture 7 - SQL
⌨️ Lecture 8 - HTML, CSS, JavaScript
⌨️ Lecture 9 - Flask
⌨️ Lecture 10 - Emoji
⌨️ Cybersecurity
Links:
- https://cs50.harvard.edu/x
- https://www.youtube.com/watch?v=LfaMVlDaQ24
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #cs #computerscience #harvard #algorithms #datastructures #datastructuresandalgorithms #python #sql #C #arrays
@data_science_weekly
How to do a code review by Google
The pages in this section contain recommendations on the best way to do code reviews, based on long experience. All together, they represent one complete document, broken up into many separate sections. You don’t have to read them all, but many people have found it very helpful to themselves and their team to read the entire set.
- The Standard of Code Review
- What to Look For In a Code Review
- Navigating a CL in Review
- Speed of Code Reviews
- How to Write Code Review Comments
- Handling Pushback in Code Reviews
Link: https://google.github.io/eng-practices/review/reviewer/
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #computerscience #cs #codereview #coding #cl #changelist
@data_science_weekly
The pages in this section contain recommendations on the best way to do code reviews, based on long experience. All together, they represent one complete document, broken up into many separate sections. You don’t have to read them all, but many people have found it very helpful to themselves and their team to read the entire set.
- The Standard of Code Review
- What to Look For In a Code Review
- Navigating a CL in Review
- Speed of Code Reviews
- How to Write Code Review Comments
- Handling Pushback in Code Reviews
Link: https://google.github.io/eng-practices/review/reviewer/
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #computerscience #cs #codereview #coding #cl #changelist
@data_science_weekly