We may earn an affiliate commission when you visit our partners.
Dave Evans

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.

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Dave Evans, who is the Udacity co-founder and CEO
Focuses on building real-world web applications, catering to learners interested in practical experience
Emphasizes foundational computer science concepts for beginners, making it accessible to learners with no prior programming background
Instructs in Python, a widely-used programming language suitable for both beginners and experienced learners
Provides hands-on experience through project-based learning, enhancing practical skills

Save this course

Save Intro to Computer Science to your list so you can find it easily later:
Save

Reviews summary

A highly entertaining intro to programming

This course is designed for beginners with no prior computer programming knowledge. It teaches programming in Python, along with computer science basics, through the building of a search engine. Covering everything from variables and conditionals to recursion and hash tables, it emphasizes not only the how but the why of the code written.
Flexibility and convenience for learners, allowing them to progress at their own pace.
"Ability to take it at my own pace is very important to me."
"I really loved this class."
"Self paced, very well organized, with lots of exercises."
"Really great for understanding using lists in python, and overall programing in a geek way."
Designed for students with no prior programming experience, offering a supportive and encouraging learning environment.
"It is a great course so far but I am yet to start. Intro to Computer Science is a great course indeed"
"I've tried multiple introductory courses and completed only this one. Many thanks to designers of the course!"
"It is an easy course to start programming in computers with python that will provide good in-depth quality videos."
The practical application of building a search engine provides a tangible goal and ties the course material together in a meaningful way.
"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."
"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."
"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."
Professor David Evans' clear explanations and thoughtful presentations make learning entertaining and approachable.
"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."
"His explanations are clear and neat, and you definitely learn how to program on Python."
"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."
A comprehensive introduction to Python, from the basics to advanced concepts, using a real-world example to frame the learning.
"This class builds a solid foundation on how to program."
"The lectures are very memorable with interactive quizzes."
"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."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Intro to Computer Science with these activities:
Read 'Automate the Boring Stuff with Python'
Gain a comprehensive understanding of Python's capabilities and practical applications.
Show steps
  • Purchase or borrow the book.
  • Read through the book, taking notes and highlighting important concepts.
  • Complete the exercises and projects provided in the book.
  • Apply the knowledge and techniques learned from the book to your own projects.
Work through Python tutorials
Develop a solid foundation in Python syntax and programming concepts.
Browse courses on Python
Show steps
  • Choose a reputable Python tutorial website or platform.
  • Follow the tutorials in order, completing exercises and projects.
  • Take notes and write down any questions you have.
  • Research unfamiliar concepts or syntax.
Join a Python study group
Collaborate with peers to reinforce your understanding of Python concepts and solve problems.
Browse courses on Python
Show steps
  • Identify or form a study group with other Python learners.
  • Meet regularly to discuss course material, work on projects, and provide support.
  • Share knowledge, ask questions, and learn from each other's experiences.
  • Hold each other accountable for progress and provide encouragement.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Python coding problems
Hone your Python programming skills by solving coding challenges.
Browse courses on Python
Show steps
  • Join an online coding challenge platform or website.
  • Select problems appropriate to your skill level.
  • Attempt to solve the problems on your own.
  • Review solutions and explanations.
Attend a Python workshop
Enhance your Python skills through hands-on, expert-led instruction.
Browse courses on Python
Show steps
  • Identify and register for a Python workshop that aligns with your needs.
  • Attend the workshop and actively participate in the activities.
  • Take notes, ask questions, and engage with the instructor and other attendees.
  • Apply the knowledge and skills gained from the workshop to your own projects.
Contribute to an open-source Python project
Gain practical experience and showcase your Python skills by contributing to real-world projects.
Browse courses on Python
Show steps
  • Identify an open-source Python project that aligns with your interests and skill level.
  • Familiarize yourself with the project's codebase and documentation.
  • Find an issue or feature to work on.
  • Implement your solution and submit a pull request.
  • Collaborate with other contributors to improve the project.
Organize and review course materials
Improve retention and understanding by organizing and reviewing course materials.
Show steps
  • Gather and organize notes, assignments, quizzes, and exams.
  • Review the materials regularly, focusing on key concepts.
  • Summarize and condense the materials for easy recall.
  • Create flashcards or use other study tools to aid memorization.

Career center

Learners who complete Intro to Computer Science will develop knowledge and skills that may be useful to these careers:
Web Developer
Web Developers design and develop websites, translating ideas into functional and aesthetically pleasing digital experiences. This course provides a great foundation for this role by teaching Python, a popular language for web development, and covering important concepts like building search engines and social networks.
Computer Programmer
Computer Programmers are the minds behind the efficient and effective execution of computer programs. They write, test, and maintain the code that tells computers what to do. This course can help you build a strong foundation in Python, a widely used programming language, and help you develop a solid understanding of computer science basics. These skills are in high demand for computer programmers, so this course is a great option if you're looking to start or advance your career in this field.
Software Engineer
Software Engineers apply engineering principles to design, develop, test, and maintain software systems. This course can help you build a solid foundation in computer science concepts and Python, giving you a strong starting point for a career in software engineering.
Database Administrator
Database Administrators ensure the integrity, security, and performance of databases. This course can provide you with a strong foundation in computer science fundamentals and Python, which can be beneficial for this role. Additionally, the course covers database fundamentals, making it a valuable asset for aspiring Database Administrators.
Data Analyst
Data Analysts collect, clean, and analyze data to extract meaningful insights and derive conclusions. This course can help you develop a strong foundation in Python, a language commonly used in data science, and provide you with a good understanding of computer science basics. These skills can give you an edge in the competitive field of data analytics.
Computer Scientist
Computer Scientists research and develop new computing technologies and applications. This course provides a good overview of computer science fundamentals and Python, which are essential for this role. While a more advanced degree is typically required for this role, this course can help you build a strong foundation for future studies and research.
Systems Analyst
Systems Analysts design and implement computer systems to meet the needs of businesses and organizations. This course can help you build a strong foundation in computer science fundamentals and Python, which are essential for this role. The course also covers systems analysis and design, making it a valuable asset for aspiring Systems Analysts.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course can help you develop a strong foundation in computer science concepts and Python, which are valuable assets for this role. Additionally, the course covers cryptography and network security, which are important topics for Information Security Analysts.
Business Analyst
Business Analysts work with stakeholders to understand their needs and develop solutions that meet those needs. This course can help you build a strong foundation in computer science concepts and Python, which can be beneficial for this role. Additionally, the course covers requirements gathering and analysis, which are important skills for Business Analysts.
Technical Writer
Technical Writers create documentation for technical products and services, such as software, hardware, and websites. This course can help you develop strong writing skills, a solid understanding of computer science concepts, and proficiency in Python, all of which are valuable for this role. The course also covers user experience design, which is an important consideration for technical documentation.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software to ensure quality. This course may be helpful for this role by providing a foundation in computer science concepts and Python, which are useful for software testing. Additionally, the course covers software testing techniques, which are important for Quality Assurance Analysts.
Network Administrator
Network Administrators manage and maintain computer networks. This course may be helpful for this role by providing a foundation in computer science concepts, computer networks, and Python, which are useful for network administration. The course also covers network security, which is an important consideration for Network Administrators.
Game Developer
Game Developers design and develop video games. This course may be helpful for this role by providing a foundation in computer science concepts and Python, which are useful for game development. Additionally, the course covers user experience design, which is important for creating engaging games.
UX Designer
UX Designers design user experiences for products and services, such as websites, software, and mobile applications. This course may be helpful for this role by providing a foundation in computer science concepts and user experience design, which are essential for this role. The course also covers programming basics, including Python, which can be useful for UX Designers.
Project Manager
Project Managers plan, execute, and close projects. This course may be helpful for this role by providing a foundation in computer science concepts and project management, which are useful for project managers. The course also covers communication and leadership skills, which are important for project managers.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read two articles that feature Intro to Computer Science:

Reading list

We've selected 30 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Intro to Computer Science.
Provides a comprehensive introduction to data structures and algorithms. It valuable resource for those who want to learn how to design and implement efficient data structures and algorithms.
Provides a comprehensive introduction to algorithms. It valuable resource for those who want to learn how to design and analyze efficient algorithms.
Provides a comprehensive introduction to machine learning using Python. It valuable resource for those who want to learn how to build and train machine learning models in Python.
Provides a comprehensive introduction to deep learning. It valuable resource for those who want to learn about the fundamental concepts of deep learning and how they are applied in the real world.
Provides a gentle introduction to Python, covering the basics of programming and computer science. It good starting point for beginners who have no prior programming experience.
Covers the essential techniques for data analysis using Python. It valuable resource for those who want to learn how to use Python to extract insights from data.
Covers the fundamental concepts of deep learning using Python. It valuable resource for those who want to learn how to build and train deep learning models in Python.
Covers the essential techniques for natural language processing using Python. It valuable resource for those who want to learn how to use Python to analyze and process text data.
Covers the fundamental concepts of data structures and algorithms in Python. It useful reference for those who want to learn how to design and implement efficient data structures and algorithms in their Python programs.
Can help provide background knowledge on Java, the language that underpins Python. It is often used as an introductory textbook for Java programming and may be helpful for those entirely new to programming.
Provides a deep dive into the advanced features and idioms of Python programming. It valuable resource for those who want to write elegant and efficient Python code.
Practical guide to using Python for automating tasks. It good choice for learners who want to learn how to use Python for practical purposes.
Gentle introduction to Python programming, with a focus on data science and machine learning. It good choice for learners who are interested in using Python for data analysis.
Comprehensive introduction to Python programming and computer science. It good choice for learners who want to learn the fundamentals of programming and computer science.
Comprehensive introduction to Python programming, with a focus on object-oriented programming. It good choice for learners who want to learn the fundamentals of programming and object-oriented programming.
Comprehensive introduction to discrete mathematics, with a focus on applications to computer science. It good choice for learners who want to learn the mathematical foundations of computer science.
Comprehensive introduction to algorithms and data structures. It good choice for learners who want to learn the fundamentals of algorithms and data structures.
Comprehensive guide to the art of computer programming. It good choice for learners who want to learn the fundamentals of computer programming and the art of software development.
Comprehensive introduction to computer systems, with a focus on the hardware and software that make up a computer system. It good choice for learners who want to learn the fundamentals of computer systems and the hardware and software that make up a computer system.
Comprehensive introduction to operating systems, with a focus on the design and implementation of operating systems. It good choice for learners who want to learn the fundamentals of operating systems and the design and implementation of operating systems.
Comprehensive introduction to databases, with a focus on the design and implementation of databases. It good choice for learners who want to learn the fundamentals of databases and the design and implementation of databases.
Comprehensive introduction to machine learning, with a focus on the theory and practice of machine learning. It good choice for learners who want to learn the fundamentals of machine learning and the theory and practice of machine learning.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser