subject
Intro

Intro to Computer Science

 with  Sebastian Thrun and David Evans

HIGHEST RATED MOOC

This course is a Top 50 MOOC of All Time based on thousands of reviews written by Class Central users. It's guaranteed to be good!

Check out the rest of the Top 50 here.

In this introduction to computer programming course, you’ll learn and practice key computer science concepts by building your own versions of popular web applications. You’ll learn Python, a powerful, easy-to-learn, and widely used programming language, and you’ll explore computer science basics, as you build your own search engine and social network.

Why Take This Course?
You’ll learn the programming language Python, and you’ll explore foundational concepts in computer science. Most importantly, you’ll start thinking like a software engineer by solving interesting problems (how to build a web crawler or a social network) using computer programming.

This course is a first step into the world of computer science, and whether you want to become a software engineer, or collaborate with software engineers, this course is for you. You’ll be prepared for intermediate-level computer science classes when you’ve mastered the concepts covered in this course.

###Build a Search Engine
Throughout this course, you’ll build a search engine by learning about and producing key search engine components including a crawler, an index and a page rank algorithm. As you build these pieces, you’ll be learning about and practicing computer science skills that will ready you for intermediate level computer science courses.

###Build a Social Network
At the end of the course we will give you a set of relationships (i.e. strings of phrases like “Dave likes Andy, Kathleen and Kristy”) and you will use your new computer science skills to organize these relationships into a social network. With your new social network, you can explore relationships and gain insight into how you fit into your own social networks.

Syllabus

###Lesson 1: How to Get Started

- Interview with Sergey Brin
- Getting Started with Python
- Processors
- Grace Hopper
- Variables
- Strings and Numbers
- Indexing Strings
- String Theory

###Lesson 2: How to Repeat

- Introducing Procedures
- Sum Procedure with a Return Statement
- Equality Comparisons
- If Statements
- Or Function
- Biggest Procedure
- While Loops
- Print Numbers

###Lesson 2.5: How to Solve Problems

- What are the Inputs
- Algorithm Pseudocode
- Optimizing

###Lesson 3: How to Manage Data

- Nested Lists
- A List of Strings
- Aliasing
- List Operations
- List Addition and Length
- How Computers Store Data
- For Loops
- Popping Elements
- Crawl Web

### Lesson 4: Responding to Queries

- Data Structures
- Lookup
- Building the Web Index
- Latency
- Bandwidth
- Buckets of Bits
- Protocols

### Lesson 5: How Programs Run

- Measuring Speed
- Spin Loop
- Index Size vs. Time
- Making Lookup Faster
- Hash Function
- Testing Hash Functions
- Implementing Hash Tables
- Dictionaries
- Modifying the Search Engine

### Lesson 6: How to Have Infinite Power

- Infinite Power
- Counter
- Recursive Definitions
- Recursive Procedures
- Palindromes
- Recursive v. Iterative
- Divide and Be Conquered
- Ranking Web Pages

### Lesson 7: Past, Present, and the Future of Computing

- Past of Computing
- Computer History Museum
- First Hard Drive
- Search Before Computers
- Present of Computing
- Slac and Big Data
- Open Source
- Future of Computing
- Text Analysis
- Energy Aware Computing
- Computer Security
- Quantum Computing
63 Student
reviews
Cost Free Online Course
Pace Self Paced
Provider Udacity
Language English
Hours 6 hours a week
Calendar 12 weeks long
+ Add to My Courses
Learn Data Analysis udacity.com

Learn to become a Data Analyst. Job offer guaranteed or get a full refund.

Advertisement
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

63 reviews

Write a review
2 out of 2 people found the following review useful
8 months ago
profile picture
Donghyun Kang completed this course, spending 20 hours a week on it and found the course difficulty to be medium.
I'm not completely new to programming having learned a basic level of SQL for a semester at the uni. I found the pace and the overall difficulty of the lecture to be very fine. I believe this course is primarily aimed for people who had no previous exposure to programming. It involves a bit of maths, but it's more of Read More
I'm not completely new to programming having learned a basic level of SQL for a semester at the uni. I found the pace and the overall difficulty of the lecture to be very fine. I believe this course is primarily aimed for people who had no previous exposure to programming. It involves a bit of maths, but it's more of a logical thinking(e.g. how would you define a Fibonacci series?), and oftentimes I've found it very ingenious the solutions provided by the lecturer or in the forum. (The forum is lively and you can always look up for answers from other students and moderators) As for the lecturer Dr. Evans, his instructions are very clear and his explanations are detailed, but not boring nor repetitive. I suppose he's had a lot of previous teaching experience. Plus, his quirky sense of humor and his abstractionist(?) drawings often made me chuckle and refreshed my attention. (All from an attempt to engage with the virtual audience!).

However, I've found, toward the end of the course(around ranking pages etc.), that the pace somewhat accelerated. And some of the supplementary problems at the end of each chapter are very challenging (still understandable after seeing the answer), which kind of demotivated me.

Overall, highly recommended class for who's interested in learning the basics of programming. I can say that I now have a solid basis on the concepts in computer science, such as loops, recursive functions, etc.
Was this review helpful to you? YES | NO
3 out of 6 people found the following review useful
a year ago
Tom completed this course, spending 9 hours a week on it and found the course difficulty to be very hard.
Being a beginner, I assumed the course would be the right one. I had too much search around elsewhere because I did not understand many things. I had to find out, how to get along with Python, simple things like indentation were not explained. The forums were in the beginning ok, I am talking about the forum software, Read More
Being a beginner, I assumed the course would be the right one. I had too much search around elsewhere because I did not understand many things. I had to find out, how to get along with Python, simple things like indentation were not explained. The forums were in the beginning ok, I am talking about the forum software, but this year Udacity is using something different, very useless crap. Unfortunately I depended on that forum, because I had a lot of questions. I watched Khanvids for to understand recursion. Read a lot of posts, that are now not longer available, fortunately I saved them!!

Pro: A project, a webcrawler. Important concepts of CS. Their application.

Con: Not for beginners. Very time consuming. Also because I'd to look for further explanations outside of the course, see above. Pretty difficult.

I did not the final project, because that would require a lot of time, too. Very doubting I could accomplish it.

Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Great course on the fundamentals of computer science. The course begins with line parsing to an eventual final project of building a search engine. On this journey, you start with the basic building blocks of constructing a program, then reintroduced with better building blocks. For example, we learn about while/for lo Read More
Great course on the fundamentals of computer science. The course begins with line parsing to an eventual final project of building a search engine. On this journey, you start with the basic building blocks of constructing a program, then reintroduced with better building blocks. For example, we learn about while/for loops, but later on learn about recursion. Also we try to store the keywords in lists, but later on we learn about hash tables. This is nice way to learn different approaches to tackle the same issue, and then investigate why these approaches work better in certain circumstances. Dave is very thorough as steps through each concept. For example drawing out the 3 levels of a Fibonacci tree or diagram how networks work using ancient Greece as an example. Dave also steps back into the history of computer science and gives tribute to those who pushed the discipline forward. I learned about Grace Hopper's nano stick, and Alan Turing's machine model. The course is basically a hand-holding of finishing the search engine.
Was this review helpful to you? YES | NO
5 out of 5 people found the following review useful
3 years ago
profile picture
Little Miss Random completed this course, spending 12 hours a week on it.
I really enjoyed the goal-oriented nature of the course. Instead of merely learning about the theory behind computing, we got a chance to apply what was being taught by writing code, and building upon the code written in previous units and put it all together to build something practical, a working search engine. And Read More
I really enjoyed the goal-oriented nature of the course. Instead of merely learning about the theory behind computing, we got a chance to apply what was being taught by writing code, and building upon the code written in previous units and put it all together to build something practical, a working search engine.

And the best part of CS101? It’s not just about programming. While I’ve never taken a computer science course before, I understand that there’s a difference between a programming class and a computer science class, and Professor Evans did a good job of mixing the two up. I didn’t just learn about Python and how to write a programme. I also learnt about famous computer scientists (Admiral Grace Hopper, who was an absolute hoot to watch on David Letterman, and Ada Lovelace among them), networking and what affects computing speeds
Was this review helpful to you? YES | NO
4 out of 5 people found the following review useful
3 years ago
profile picture
Ari Pine completed this course.
The stated goal is that the student will “have learned key concepts in computer science and enough programming to be able to write Python programs.” The course does an excellent job of doing this. As I stated before, I recommend at least some coding experience. The video lectures, with the support of the discussion for Read More
The stated goal is that the student will “have learned key concepts in computer science and enough programming to be able to write Python programs.” The course does an excellent job of doing this. As I stated before, I recommend at least some coding experience. The video lectures, with the support of the discussion forums, provide a clear exposition of the material in an easy-going manner. Professor Evans covers the key concepts for an introduction to computer science and to the fundamental tools to get programming jobs done. The quizzes and problem sets are what bind the whole experience together. Watching lectures alone cannot teach; learning is about doing. There is plenty of both to be had in Udacity’s CS101 class.
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
I also like Udacity's model. The lectures are very engaging, for international students who may have difficulties understanding English, there are captions. Just click cc on the video player and pick your language. And there is no pressure of deadlines or any stress. Discussion forums are maintained and comments are ta Read More
I also like Udacity's model. The lectures are very engaging, for international students who may have difficulties understanding English, there are captions. Just click cc on the video player and pick your language. And there is no pressure of deadlines or any stress. Discussion forums are maintained and comments are tagged well. Most of the time, I was able to find an answer to my question using forum's search (it may seem obvious but it's not the case on other sites where I cannot find even my own post). Very convenient IDE, built in quizzes, and plenty of homework exercises. I also like that they have * (star) challenges to push you further. Overall, I think that Udacity's platform is the best of all MOOCs so far.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
2 years ago
David completed this course, spending 20 hours a week on it and found the course difficulty to be medium.
Don't pay for the enrollment, all of the course material is free.. Their mentor feedback wasn't that great. When I got stuck on a project, they just kept sending redundant nonconstructive information, like. "Hey you're doing a great job check out this link Read More
Don't pay for the enrollment, all of the course material is free..

Their mentor feedback wasn't that great. When I got stuck on a project, they just kept sending redundant nonconstructive information, like. "Hey you're doing a great job check out this link
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
3 years ago
profile picture
Ryan McCormack completed this course.
One of the great things about CS101 is that the entire course is couched in a real-world problem: how to build a search engine. This Rosetta Stone helped anchor the course content, quizzes and homework; everything was aimed at achieving that objective, which I found useful. Computer science concepts can be very abstrac Read More
One of the great things about CS101 is that the entire course is couched in a real-world problem: how to build a search engine. This Rosetta Stone helped anchor the course content, quizzes and homework; everything was aimed at achieving that objective, which I found useful. Computer science concepts can be very abstract, and it helps to tie them into something with which everyone at least has familiarity (i.e., we’ve all used Google and get the basic idea).
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
3 years ago
profile picture
Anonymous completed this course.
A good beginning course in Python. It can be frustrating when your code doesn't work and the feedback from the interpreter is not very helpful. Making use of the discussion boards is essential in those cases. Don't obsess over the assignments, because only the final exam counts for credit. A good choice for those who Read More
A good beginning course in Python. It can be frustrating when your code doesn't work and the feedback from the interpreter is not very helpful. Making use of the discussion boards is essential in those cases. Don't obsess over the assignments, because only the final exam counts for credit.

A good choice for those who can't install Python software on the computers they use. Though having Python installed would be convenient, it is possible to submit everything through their interpreter with no special software required.
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
3 years ago
profile picture
Robert Talbert completed this course.
The course was broken into seven Units, each consisting of about 30 short videos with embedded quizzes, followed by a homework set, and a final exam. Overall I was really impressed with how well-designed the course was. The fact that this one project — building a search engine — actually could lead, in a very natural Read More
The course was broken into seven Units, each consisting of about 30 short videos with embedded quizzes, followed by a homework set, and a final exam.

Overall I was really impressed with how well-designed the course was. The fact that this one project — building a search engine — actually could lead, in a very natural way, to many of the fundamental concepts of computer science struck me as kind of genius.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Really great for understanding using lists in python, and overall programing in a geek way. And understanding why is line written this way and not other. Showing how memory is involve etc. If learning a program which will work for you this is a class for you. I think that this class will give you deep understanding of Read More
Really great for understanding using lists in python, and overall programing in a geek way. And understanding why is line written this way and not other. Showing how memory is involve etc. If learning a program which will work for you this is a class for you. I think that this class will give you deep understanding of programing any language. If you are leaning more toward games I would recommend Rice University - which is great for OOP and first experience with GUI .
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
I really enjoyed this class. Prof. Evans teaches you string processing, functions, lists, dictionaries and hash functions as you build a web crawler to harvest URLs, then an index to store them, then a search engine based on the famous (Larry) Page rank algorithm that formed Google's first search engine. I liked his s Read More
I really enjoyed this class. Prof. Evans teaches you string processing, functions, lists, dictionaries and hash functions as you build a web crawler to harvest URLs, then an index to store them, then a search engine based on the famous (Larry) Page rank algorithm that formed Google's first search engine.

I liked his sense of humor and I liked the self-paced aspect of the class. Highly recommended for Python beginners.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Really recommended! The instructor is brilliant while presenting every detail of the class. His explanations are clear and neat, and you definitely learn how to program on Python. What I really like about Udacity courses in general is that you are not constraint to schedules, you learn to your own pace, contents are updated, you learn a lot, and you can even get a certificate.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
This course builds a solid foundation on how to program. The lectures are very memorable with interactive quizzes. Homework assignments involve a lot of thinking and problem solving -- two or three star ones are quite challenging. Use discussion forums if you're stuck, excellent community of learners! If you're mo Read More
This course builds a solid foundation on how to program. The lectures are very memorable with interactive quizzes.

Homework assignments involve a lot of thinking and problem solving -- two or three star ones are quite challenging.

Use discussion forums if you're stuck, excellent community of learners!

If you're more game oriented I would suggest coursera's "Interactive Python" course though.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
I've tried multiple introductory courses and completed only this one. Many thanks to designers of the course! It;s using interactive programming environment that is pretty neat and great for learning purposes but you're not going to have it in the real life. Having some references to how to set up dev. environment in Read More
I've tried multiple introductory courses and completed only this one. Many thanks to designers of the course!

It;s using interactive programming environment that is pretty neat and great for learning purposes but you're not going to have it in the real life. Having some references to how to set up dev. environment in the real life would be nice to have.

Overall, the course is great and highly recommended.
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
This was my first programming course of any kind. I thought the pace and the topics were well thought out and covered many programming topics in a serious way. The coding interface works well and the forums were very friendly and helpful. I would highly recommend this course!
Was this review helpful to you? YES | NO
1 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Although building a search engine using Python is the project to complete by the end of the course, the main outcome is to learn general programming concepts.

This is basically what final exam is testing, but don't worry, it's impossible not to learn well as the course has many quizzes and exercises.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
3 years ago
profile picture
Anonymous completed this course.
I really loved this class. It is self paced, very well organized, with lots of exercises. I highly recommend it to everyone new to programming,, because it starts from the scratch. But as with all self-paced courses, you have to apply a bit of a discipline in order to finish it.
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Ability to take it at my own pace is very important to me. Great course design, informative lectures, meaningful and consistent material. This is a complete package, no additional resources needed to complete the course requirements.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Great class for beginners, although it doesn't delve much into Class definitions or other object-oriented aspects. All assignments are very helpful, and a very complex working product is constructed at the end, which in hindsight is quite impressive.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Excellent introduction to Python for beginners and those new to python. He teaches some great tools including recursion with cacheing. It was my first programming course and I thoroughly enjoyed it.

He is a great teacher.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Prof. Evans introduces Python is a clear and thoughtful way; the end result is a function search engine. Highly recommended for anyone wishing to learn to program or requiring a quick introduction to the language.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Important course for CS students. It starts from the basic such as data types to functions, lists, dictionaries , indexes, and algorithms. Search engine is used as the example of application, but assignment have more exercises.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
2 years ago
Brian Bell completed this course, spending 10 hours a week on it and found the course difficulty to be medium.
Great course. Highly recommend to beginners. Give it a try if you want to learn computer science. Nice to be able to watch the videos and pause them where you need to.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Very solid class. Well worth the effort. David Evans is able to explain ideas very well. The frequent quizzes are helpful. The problem set are well constructed.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
3 years ago
profile picture
Anonymous completed this course.
The best class i join it ever. Prof. David Evans really worked hard to make all information and materials in this course simple as possible.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
This was an excellent introduction to python as well as a look into how search engines work.

Excellent class
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Great intro to programming course where by the end you have actually built something substantial.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Really good course that teaches Python essentials and prepares for other Udacity courses. It doesn't include OOP though.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
very important class , and really useful , thank you Udacity.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
3 years ago
profile picture
Anonymous completed this course.
It was fun to learn how to make own web search engine.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
4 years ago
profile picture
Anonymous completed this course.
Very good start for programming in python, liked it!
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
3 years ago
profile picture
Anonymous completed this course.
Awesome class. Great Content-Great Learning Experience !!
Was this review helpful to you? YES | NO
2 years ago
profile picture
Khalid completed this course, spending 10 hours a week on it and found the course difficulty to be medium.
It was a good intro to computer science and python, and I found the programming questions the right mix of hard and easy.
Was this review helpful to you? YES | NO
2 years ago
Jean Philavong audited this course, spending 4 hours a week on it and found the course difficulty to be hard.
This is a very informative course. I'm glad I decided to take this course. The instruction was clear and concise.
Was this review helpful to you? YES | NO
1 out of 3 people found the following review useful
Was this review helpful to you? YES | NO
1 out of 2 people found the following review useful
3 years ago
profile picture
Martin Bede completed this course, spending 6 hours a week on it and found the course difficulty to be very easy.
Was this review helpful to you? YES | NO
0 out of 2 people found the following review useful
2 years ago
Cole Montella dropped this course.
Was this review helpful to you? YES | NO
0 out of 1 people found the following review useful
2 years ago
profile picture
Lewis Smookler audited this course.
Was this review helpful to you? YES | NO
5 months ago
profile picture
Erlend Landroe completed this course.
Was this review helpful to you? YES | NO
3 months ago
Aung Thu Hein partially completed this course.
Was this review helpful to you? YES | NO
2 years ago
Tajammul Pasha is taking this course right now.
Was this review helpful to you? YES | NO
3 weeks ago
Tung Nguyen completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Ciprian Dan Chirilă audited this course.
Was this review helpful to you? YES | NO
Was this review helpful to you? YES | NO
2 years ago
Omnia is taking this course right now.
Was this review helpful to you? YES | NO
a year ago
profile picture
Wojciech Czarnecki completed this course.
Was this review helpful to you? YES | NO
2 years ago
Arthur is taking this course right now.
Was this review helpful to you? YES | NO
10 months ago
Mark Hess completed this course.
Was this review helpful to you? YES | NO
a year ago
Colin Khein completed this course.
Was this review helpful to you? YES | NO
Was this review helpful to you? YES | NO
a year ago
Sarah Matthews is taking this course right now.
Was this review helpful to you? YES | NO
2 years ago
Mohamed Baher Khaligy is taking this course right now.
Was this review helpful to you? YES | NO
a year ago
Andy Sidhu completed this course.
Was this review helpful to you? YES | NO
4 days ago
Ashlynn Pai completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Anonymous is taking this course right now.
Was this review helpful to you? YES | NO
12 months ago
Yuri partially completed this course.
Was this review helpful to you? YES | NO
a year ago
Caio Taniguchi completed this course.
Was this review helpful to you? YES | NO
a year ago
Mark Henry Butler completed this course.
Was this review helpful to you? YES | NO
a year ago
profile picture
Logan Hampton partially completed this course.
Was this review helpful to you? YES | NO

Write a review

How would you rate this course? *
How much of the course did you finish? *
Review
Create Review