To support our site, Class Central may be compensated by some course providers.

Taken this course? Share your experience with other students. Write review

Overview

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

Taught by

Sebastian Thrun and David Evans

Help Center

Most commonly asked questions about Udacity Udacity

Reviews for Udacity's Intro to Computer Science
4.5 Based on 71 reviews

  • 5 stars 72%
  • 4 stars 14%
  • 3 stars 6%
  • 2 stars 4%
  • 1 stars 4%

Did you take this course? Share your experience with other students.

Write a review
  • 1
Donghyun K
5.0 2 years ago
Donghyun 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 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 lectur…
2 people found
this review helpful
Was this review helpful to you? Yes
Little R
5.0 5 years ago
Little 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 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
11 people found
this review helpful
Was this review helpful to you? Yes
Ari P
5.0 5 years ago
Ari 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 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.
6 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 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. D…
4 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 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.
3 people found
this review helpful
Was this review helpful to you? Yes
David D
2.0 3 years ago
by 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
4 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 5 years ago
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 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.
2 people found
this review helpful
Was this review helpful to you? Yes
Ryan M
5.0 5 years ago
Ryan 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 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).
4 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 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 .
2 people found
this review helpful
Was this review helpful to you? Yes
Robert T
5.0 5 years ago
Robert 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 way, to many of the fundamental concepts of computer science struck me as kind of genius.
3 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 sense of humor and I liked the self-paced aspect of the class. Highly recommended for Python beginners.
2 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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.
2 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 more game oriented I would suggest coursera's "Interactive Python" course though.
1 person found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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 the real life would be nice to have.

Overall, the course is great and highly recommended.
1 person found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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!
3 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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.
1 person found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 5 years ago
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.
2 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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.
3 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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.
2 people found
this review helpful
Was this review helpful to you? Yes
Anonymous
5.0 6 years ago
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.
2 people found
this review helpful
Was this review helpful to you? Yes
  • 1

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.