We may earn an affiliate commission when you visit our partners.
Course image
Eric Grimson, John Guttag, and Ana Bell

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Read more

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Since these courses may be the only formal computer science courses many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, they are not "computation appreciation" courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will

What's inside

Learning objectives

  • A notion of computation
  • The python programming language
  • Some simple algorithms
  • Testing and debugging
  • An informal introduction to algorithmic complexity
  • Data structures

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for beginners who want to learn the Python programming language
Examines some simple algorithms, which are fundamental in computer programming
Develops testing and debugging skills that are essential for programming
Provides an informal introduction to algorithmic complexity, a key concept in computer science
Introduces data structures, which are essential for organizing and managing data in programming

Save this course

Save Introduction to Computer Science and Programming Using Python to your list so you can find it easily later:
Save

Reviews summary

"mit's excellent" python for beginners

According to students, "Mit's Excellent" Python for Beginners is a challenging but incredibly rewarding course that will push you to the limit, especially if you are a beginner to Python. Professor Grimson is a world-class lecturer and the course content is top-level. The pace is fast and rigorous, so be ready to work hard. However, the challenging assignments are what make this course so rewarding. If you are looking for a quality course to learn Python, this is it!
World Class
"Excellent class. Professor Grimson is an excellent and very knowledgeable lecturer."
"I came to this course after taking some parts of Harvard's CS50x (a really good course), another Intro to CS course, so I couldn't help but compare. This isn't to say which one "did it better""
"Of the 5 MOOC`s I have completed, this is the best one."
"This is a very good course. I have tried a few intro to computing courses, and this is hands-down by far the best."
"Because of this course, I started learning Python instead of R."
"I had very little programming experience (just Python for Informatics on Coursera), so I found this course to be difficult, but very rewarding."
Top Level Course
"Excellent introduction class for anyone wanted to learn Python either you are a beginner/student or a professional experienced engineer wanted to learn something new."
"This is a top level MOOC"
"The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn't solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule."
"This course has been my best online 'tutorial'. Instructor approaches teaching from 'first principle' and for me that is the way to go."
"Although this course says beginner, it is really an intermediate course in most other programs."
"This is a well-taught, well-organized course that will challenge you to become a programmer who critically think!"
Challenging & Rewarding
"Excellent class. Professor Grimson is an excellent and very knowledgeable lecturer."
"Be prepared to work a lot to perform well."
"The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn't solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule."
"This is a very good course. I have tried a few intro to computing courses, and this is hands-down by far the best."
"I had very little programming experience (just Python for Informatics on Coursera), so I found this course to be difficult, but very rewarding."
Fast & Rigorous
"This course covers a lot of ground, so it may be demanding for a beginner."
"This course moves very quickly and has required 20+ additional hours of work weekly beyond the instruction."
"Although this course says beginner, it is really an intermediate course in most other programs."
"This course was much harder and moved much quicker than any other MOOC I have taken."
"Excellent introduction class for anyone wanted to learn Python either you are a beginner/student or a professional experienced engineer wanted to learn something new."
"The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn't solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule."
Very Challenging
"This course was much harder and moved much quicker than any other MOOC I have taken."
"The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn't solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule."
"This course has been my best online 'tutorial'. Instructor approaches teaching from 'first principle' and for me that is the way to go."
"Although this course says beginner, it is really an intermediate course in most other programs."
"I thought this course was HARD."
"This is a well-taught, well-organized course that will challenge you to become a programmer who critically think!"

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 Introduction to Computer Science and Programming Using Python with these activities:
Read 'Automate the Boring Stuff with Python'
This book provides a comprehensive overview of Python programming and will help solidify your understanding of core coding concepts.
Show steps
  • Get a copy of the book
  • Read the book at your own pace
  • Complete the exercises in the book
Join a study group or online forum for Python programmers
Networking with peers will broaden your perspectives on the subject and potentially introduce you to new topics.
Show steps
  • Find a study group or online forum for Python programmers
  • Join the study group or online forum
  • Participate in discussions and ask questions
Complete coding practice drills
Constantly write code and practice using the Python language to solidify understanding of course concepts.
Browse courses on Python
Show steps
  • Find a Python coding practice website or app
  • Set aside time each day or week to practice coding challenges
  • Start with easy coding challenges and gradually increase the difficulty
Five other activities
Expand to see all activities and additional details
Show all eight activities
Follow video tutorials on advanced Python concepts
Guided tutorials will allow you to learn at your own pace and focus on specific areas where you need improvement.
Browse courses on Python
Show steps
  • Find a video tutorial series on advanced Python concepts
  • Watch the videos and take notes on the key concepts
  • Practice the concepts you learn in the videos by coding along
Participate in coding competitions and hackathons
Coding competitions and hackathons will test your skills and help you learn new technologies.
Browse courses on Python
Show steps
  • Find a coding competition or hackathon that you are interested in
  • Register for the competition or hackathon
  • Prepare for the competition or hackathon by practicing and studying
  • Participate in the competition or hackathon and do your best
Organize your notes and learning materials
Cleaning up your notes and materials will make it easier to find and review them later.
Browse courses on Python
Show steps
  • Gather all of your notes and learning materials
  • Organize the materials by topic or date
  • Store the materials in a safe and convenient location
  • Review the materials regularly
Create a blog post or video tutorial on a Python topic
Creating content will help you solidify understanding of a topic by breaking it down and explaining it to others.
Browse courses on Python
Show steps
  • Choose a Python topic that you are familiar with
  • Write a blog post or create a video tutorial on the topic
  • Publish the blog post or video tutorial and share it with others
Build a data analysis tool using Python
Creating a real-world project not only tests your skills, it helps you grasp the principles of computation, algorithms, data analysis, and coding concepts as a whole.
Browse courses on Python
Show steps
  • Identify a real-world problem that you can solve using data analysis
  • Design a data analysis tool that will solve the problem
  • Build the data analysis tool using Python
  • Test and iterate on the data analysis tool until it is working correctly

Career center

Learners who complete Introduction to Computer Science and Programming Using Python will develop knowledge and skills that may be useful to these careers:
Computer and Information Research Scientist
Computer and Information Research Scientists conduct research to advance computing technology. This course can help build a foundation for this career by introducing core programming concepts and providing hands-on experience with Python. The course's focus on algorithms, complexity, and data structures will also help develop problem-solving and analytical skills that are essential for this role.
Software Developer
Software Developers design, build, and maintain software applications. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing efficient and scalable software solutions.
Data Scientist
Data Scientists use scientific methods to extract insights from data. This course can help build a foundation for this career by introducing core programming concepts using Python, including data structures and algorithms. The course also covers basic statistical concepts, which are essential for understanding and analyzing data.
Machine Learning Engineer
Machine Learning Engineers design and build machine learning models to solve complex problems. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing machine learning models.
Web Developer
Web Developers design and build websites and web applications. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing efficient and scalable web applications.
Database Administrator
Database Administrators design, build, and maintain databases. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing efficient and scalable databases.
Computer Network Architect
Computer Network Architects design and build computer networks. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing efficient and scalable computer networks.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and mitigating security vulnerabilities.
Systems Engineer
Systems Engineers design, build, and maintain computer systems. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing efficient and scalable computer systems.
Computer Systems Analyst
Computer Systems Analysts study how businesses use computer technology. They find ways to improve the efficiency of computer systems and make them more useful for the business. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and improving the efficiency of computer systems.
IT Manager
IT Managers plan, organize, and direct the activities of an organization's IT department. They are responsible for ensuring that the organization's IT systems are reliable, efficient, and secure. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and managing IT systems.
Computer Hardware Engineer
Computer Hardware Engineers design, build, and test computer hardware. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and designing efficient and reliable computer hardware.
Computer Network Administrator
Computer Network Administrators install, maintain, and troubleshoot computer networks. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and managing computer networks.
Database Developer
Database Developers design and build databases. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for designing and implementing efficient and scalable databases.
IT Support Specialist
IT Support Specialists provide technical support to users of computer systems. This course can help build a foundation for this career by providing a comprehensive introduction to programming using Python. The course also covers concepts such as algorithms, complexity, and data structures, which are essential for understanding and troubleshooting computer systems.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read three articles that feature Introduction to Computer Science and Programming Using Python:

Reading list

We've selected 21 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 Introduction to Computer Science and Programming Using Python.
Is written by the same instructors as the course and covers the same topics. It can be used as a textbook for the course or as a reference.
Comprehensive guide to Python that covers everything from the basics to advanced topics such as data science and machine learning. It good choice for beginners who want to learn Python in depth.
Provides an introduction to the Python language and computational thinking. It's a great resource for beginners who want to learn the basics of programming, and it's also helpful for people who want to refresh their skills.
Gentle introduction to Python that is written for beginners. It good choice for beginners who want to learn Python at their own pace.
Teaches you how to use Python to automate boring tasks. It's a great resource for people who want to learn how to use Python for practical purposes.
Good choice for students who want a more comprehensive introduction to Python and computer science. It covers a wide range of topics, from basic programming concepts to object-oriented programming.
Classic textbook on algorithms and data structures. It covers a wide range of topics, from basic algorithms to advanced data structures.
Is another classic textbook on algorithms. It covers a wide range of topics, from basic algorithms to advanced data structures.
Good introduction to data analysis using Python. It covers the basics of data analysis and provides many examples of how to use Python to analyze data.
Good introduction to machine learning using Python. It covers the basics of machine learning and provides many examples of how to use Python to build machine learning models.
Good introduction to deep learning using Python. It covers the basics of deep learning and provides many examples of how to use Python to build deep learning models.
Good introduction to natural language processing using Python. It covers the basics of natural language processing and provides many examples of how to use Python to build natural language processing models.
Good overview of computer science. It covers the history of computer science, the different areas of computer science, and some of the key concepts of computer science.
Classic work on the nature of intelligence and consciousness. It challenging read, but it is also a very rewarding one.
Classic work on astronomy. It beautiful and inspiring read, and it provides a good overview of the universe.

Share

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

Similar courses

Here are nine courses similar to Introduction to Computer Science and Programming Using Python.
Programming a Quantum Computer with Qiskit
Most relevant
Complete Python Based Image Processing and Computer Vision
Most relevant
Introduction to Deep Learning
Most relevant
CS50's Computer Science for Lawyers
Introduction to Computational Thinking and Data Science
Open Source Programming - Master's
Introduction to Computer Science and Programming
Computer Architecture & Organization Part 1 : Cache Memory
Computer Architecture & Organization Part 2 : Hard Disk
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