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.

Traffic lights

Read about what's good
what should give you pause
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

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Solid intro to computer science

learners say this course offers a solid introduction to computer science, particularly beneficial for complete beginners. The hands-on projects are frequently praised as being highly effective for learning Python and foundational concepts through practical application. While many find the lectures clear, some reviewers note that certain topics lack depth or require seeking additional resources for full understanding. Overall, it's seen as a good starting point for those with no prior experience, though opinions on the pace and difficulty can vary.
Opinions vary on how clear lectures are.
"The lectures were clear and easy to follow. Hands-on labs really helped."
"The projects are good, but the lectures were sometimes hard to follow or felt dry."
"Poor explanations, felt lost most of the time."
"The explanations in lectures were not sufficient for me."
Accessible for those with no prior experience.
"Excellent course for a complete beginner! The projects were challenging but very rewarding."
"As a complete beginner, I found the pace and explanations perfect for getting started."
"No prior knowledge needed is true; it starts from the absolute basics."
Hands-on coding boosts understanding.
"The hands-on coding and projects are the strongest part of the course for me."
"Building the search engine and social network helped solidify the concepts practically."
"I really appreciated the chance to apply what I learned immediately through the assignments."
Some topics need more detail or supplements.
"Good course overall. Covers the basics well. Some topics could use a bit more depth."
"Had to look up additional info for some concepts to fully grasp them."
"Didn't feel like a deep dive into computer science, more just programming basics in Python."
"Might need supplementary material for certain concepts if you want to go deeper."

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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 one article that features 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:

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser