Enroll to Access
In this course you will learn key concepts in computer science and learn how to write your own computer programs in the context of building a web crawler.
At the end of this course, you will have learned key concepts in computer science and enough programming to be able to write Python programs to solve problems on your own. This course will prepare you to move on to intermediate-level computing courses.
There is no prior programming knowledge needed for this course. Beginners are welcome!
Your first program: Extracting a link
Procedures, decisions (if), loops; finding all of the links on a page
Universal techniques for solving programming problems
Lists; crawling the web
Complex data structures; building a reverse index to do searches; networks
Reasoning about cost; hash tables (Dictionary)
Recursive definitions; ranking search results
Past, present, and future of computing; exam
(These units were not part of the original (7-week) course, but have been added to the course.)
Tips for learning more on your own
Modules, types, classes
File IO, and Exceptions
This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course.
This class will always be available!
Take a look at the “Class Summary,” “What Should I Know,” and “What Will I Learn” sections above. If you want to know more, just enroll in the course and start exploring.
Yes! The point is for you to learn what YOU need (or want) to learn. If you already know something, feel free to skip ahead. If you ever find that you’re confused, you can always go back and watch something that you skipped.
Collaboration is a great way to learn. You should do it! The key is to use collaboration as a way to enhance learning, not as a way of sharing answers without understanding them.
Udacity classes are a little different from traditional courses. We intersperse our video segments with interactive questions. There are many reasons for including these questions: to get you thinking, to check your understanding, for fun, etc... But really, they are there to help you learn. They are NOT there to evaluate your intelligence, so try not to let them stress you out.
Learn actively! You will retain more of what you learn if you take notes, draw diagrams, make notecards, and actively try to make sense of the material.
David Evans is a Professor of Computer Science at the University of Virginia where he teaches computer science and leads research in computer security. He is the author of an introductory computer science textbook and has won Virginia's highest award for university faculty. He has PhD, SM, and SB degrees from MIT.