We may earn an affiliate commission when you visit our partners.
Course image
Dr. Jennifer Coy

Designed for the not-yet-experienced programmer, this course will provide you with a structured foundation for developing complex programs in the fields of computer science or data science. If you are a self-taught programmer with scattered bits of understanding, or a complete novice, this is the course for you.

Read more

Designed for the not-yet-experienced programmer, this course will provide you with a structured foundation for developing complex programs in the fields of computer science or data science. If you are a self-taught programmer with scattered bits of understanding, or a complete novice, this is the course for you.

Here, you will gain a thorough understanding of how to write programs to solve problems, through structured, scaffolded, hands-on exercises with many examples and opportunities to practice. You will learn the foundational concepts of computer science by developing programs in the python programming language (one of the most commonly used languages).

We will also use many of the most common python packages -- why reinvent the wheel when you can use well-tested, flexible, pre-built solutions? While these packages can save significant time, it is also important to understand how they do their magic, and if your particular problem is the right fit to be solved by these potential tools. You will encounter the following python packages: numpy, scipy, matplotlib, pandas, seaborn, re (for regular expressions), textblob, nltk, and others.

In the process of learning how to program, we will explore different topics at the introductory level, including natural language processing and data analytics.

By the end of this course, you will be confident in your ability to solve a problem using the python programming language -- and how to verify that your solution is accurate.

Enroll now

What's inside

Syllabus

Introduction to Programming and Python
Welcome to the course! In this module, we will explore what makes the python programming language so excellent to learn and begin to write our first python programs. We will learn about variables, how to use them, how a program makes decisions using if statements, and how to interact with the user through input() and print() functions.
Read more
Control Statements, Loops, and Program Development
In this module, we will learn how to make our programs more flexible, and able to solve more complex problems. We'll see how we can make more complex decisions using the if statement by including elif and else. We'll also see how we can have the program repeat actions using for and while, and be introduced to other useful functions such as range(), mean(), median(), and mode().
Functions, A Beginning
In this module, we will learn how to create our own custom functions, which allow us to reuse our code, divide programs into meaningful chunks, and also reduce the number of errors and bugs in our code. This content will be split over 2 modules, with the first few sections being covered in this first module, with the remainder being covered in the next module.
Functions, The Ongoing Story
In this module, we will learn review functions, and continue practicing creating our own functions. There are a few lecture segments that touch on a few finer points from this chapter, and then more live programming examples. At this point in the semester, we have enough "tools" that we can write a larger program! You should experiment in the Reflective Practice and see what you can accomplish! In the full version of this course, this module also includes the beginning of a larger, 2 week long, project. Therefore, the content in this Module is somewhat shorter than normal.
Conclusion

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides structured hands-on exercises and examples for practice, beneficial for novice programmers and self-taught individuals with scattered knowledge
Emphasizes the use of industry-standard Python packages, enhancing practicality and efficiency
Covers topics such as natural language processing and data analytics, expanding the scope of programming skills
Designed for beginners, providing a strong foundation for those starting their programming journey
Led by Dr. Jennifer Coy, an experienced instructor, ensuring quality instruction
Absence of explicit prerequisites, making it accessible to a broader audience

Save this course

Save Introduction to Programming to your list so you can find it easily later:
Save

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 Programming with these activities:
Review Basic Programming Concepts
Strengthen your foundation by reviewing basic programming concepts such as variables, data types, and control flow.
Browse courses on Programming Fundamentals
Show steps
  • Read articles or tutorials on basic programming.
  • Complete online exercises.
  • Practice writing simple programs.
Complete Python Codecademy Course
Reinforce your understanding of Python syntax and fundamentals by completing the Codecademy course on Python basics.
Browse courses on Python
Show steps
  • Sign up for the Codecademy Python course.
  • Complete the interactive lessons and exercises.
  • Practice writing Python code on your own.
Join a Python Study Group
Connect with other learners to discuss Python concepts, share knowledge, and work on projects together.
Browse courses on Python
Show steps
  • Find a Python study group online or in your community.
  • Attend regular meetings and participate in discussions.
  • Collaborate with group members on projects.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Develop a Simple Python Project
Apply your Python skills by creating a simple project, such as a calculator, a game, or a data visualization tool.
Browse courses on Python
Show steps
  • Brainstorm ideas for a project.
  • Design and implement the project.
  • Test and debug the project.
Explore Additional Python Libraries
Expand your Python knowledge by exploring additional libraries such as NumPy, SciPy, and matplotlib.
Browse courses on Python Libraries
Show steps
  • Identify Python libraries that align with your interests.
  • Find tutorials and documentation for the selected libraries.
  • Follow the tutorials and implement the concepts in your own projects.
Participate in a Python Coding Contest
Challenge yourself and test your Python skills by participating in a coding competition.
Browse courses on Python
Show steps
  • Find a Python coding contest that aligns with your skill level.
  • Practice solving coding problems.
  • Participate in the contest and submit your solutions.
Mentor Junior Python Developers
Share your knowledge and skills by mentoring junior Python developers, reinforcing your understanding and fostering community growth.
Browse courses on Python
Show steps
  • Sign up for a mentorship program.
  • Connect with mentees and provide guidance on Python topics.
  • Review mentees' code and provide feedback.
Contribute to an Open-Source Python Project
Engage with the Python community and contribute to open-source projects, fostering collaboration and deepening your understanding.
Browse courses on Python
Show steps
  • Find an open-source Python project that aligns with your interests.
  • Read the project's documentation and contribute to discussions.
  • Submit bug reports or feature requests.
  • Write code and submit pull requests.

Career center

Learners who complete Introduction to Programming will develop knowledge and skills that may be useful to these careers:
Data Analyst
Data Analysts are responsible for collecting, cleaning, and analyzing data to identify trends and patterns. They use their findings to help businesses make informed decisions. This course provides a solid foundation in programming, data analysis, and natural language processing, which are all essential skills for Data Analysts. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Software Developer
Software Developers design, develop, and maintain computer applications. They use their programming skills to create software that meets the needs of users. This course provides a strong foundation in programming fundamentals, data structures, and algorithms, which are all essential skills for Software Developers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting data to help businesses make informed decisions. They use their programming skills to develop machine learning models and other data-driven solutions. This course provides a solid foundation in programming, data analysis, and machine learning, which are all essential skills for Data Scientists. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Quantitative Analyst
Quantitative Analysts use their programming skills to develop mathematical models that can be used to predict financial risks and opportunities. This course provides a strong foundation in programming, mathematics, and statistics, which are all essential skills for Quantitative Analysts. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Business Analyst
Business Analysts help businesses improve their operations by analyzing data and identifying inefficiencies. They use their programming skills to develop data-driven solutions that can help businesses save money and improve efficiency. This course provides a solid foundation in programming, data analysis, and business process improvement, which are all essential skills for Business Analysts. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Natural Language Processing Engineer
Natural Language Processing Engineers design and develop software that can understand and process human language. This course provides a solid foundation in programming, natural language processing, and machine learning, which are all essential skills for Natural Language Processing Engineers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models that can be used to solve a variety of problems, such as fraud detection, customer segmentation, and natural language processing. This course provides a solid foundation in programming, machine learning, and data analysis, which are all essential skills for Machine Learning Engineers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Software Tester
Software Testers are responsible for testing software to ensure that it meets the requirements of users. They use their programming skills to develop test cases and automate testing processes. This course provides a solid foundation in programming, software testing, and quality assurance, which are all essential skills for Software Testers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Data Engineer
Data Engineers design and develop the infrastructure that is used to store, process, and analyze data. This course provides a solid foundation in programming, data analysis, and cloud computing, which are all essential skills for Data Engineers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. They use their programming skills to develop database schemas and optimize database performance. This course provides a solid foundation in programming, database management, and data security, which are all essential skills for Database Administrators. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Web Developer
Web Developers design and develop websites. They use their programming skills to create websites that are user-friendly and efficient. This course provides a solid foundation in programming, web development, and user experience design, which are all essential skills for Web Developers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
IT Project Manager
IT Project Managers are responsible for planning and managing IT projects. They use their programming skills to develop project plans and track project progress. This course provides a solid foundation in programming, project management, and IT infrastructure, which are all essential skills for IT Project Managers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Technical Writer
Technical Writers create documentation for software and other technical products. They use their programming skills to understand the technical details of products and to write clear and concise documentation. This course provides a solid foundation in programming, technical writing, and user experience design, which are all essential skills for Technical Writers. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Computer Support Specialist
Computer Support Specialists provide technical support to users of computers and other electronic devices. They use their programming skills to troubleshoot problems and to recommend solutions. This course provides a solid foundation in programming, computer hardware, and software, which are all essential skills for Computer Support Specialists. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.
Network Administrator
Network Administrators are responsible for designing and maintaining computer networks. They use their programming skills to configure network devices and to troubleshoot network problems. This course provides a solid foundation in programming, networking, and security, which are all essential skills for Network Administrators. The hands-on exercises and projects in this course will help you develop the skills you need to succeed in this role.

Reading list

We've selected 23 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 Programming.
Collection of recipes that cover a wide range of Python programming topics. It great resource for Python programmers of all levels.
Practical guide to Python programming, covering the basics of the language as well as more advanced topics such as data structures, object-oriented programming, and web scraping. It is written in a clear and accessible style, and it is packed with examples and exercises that will help you learn to use Python effectively.
Provides a comprehensive introduction to machine learning using Python and popular libraries such as Scikit-Learn, Keras, and TensorFlow. It covers concepts such as data preprocessing, machine learning models, and deep learning and is suitable for both beginners and experienced practitioners.
Comprehensive introduction to Python programming and computer science. It covers a wide range of topics, including data types, control flow, functions, and object-oriented programming.
Fast-paced, project-based introduction to Python programming. It covers the basics of the language as well as more advanced topics such as data visualization, web scraping, and machine learning. It is written in a clear and concise style, and it is packed with examples and exercises that will help you learn to use Python effectively.
Deep dive into the Python programming language. It covers advanced topics such as decorators, generators, and metaprogramming. It is written in a clear and concise style, and it is packed with examples and exercises that will help you learn to use Python effectively.
Comprehensive introduction to machine learning with Python. It covers a wide range of topics, including supervised learning, unsupervised learning, and deep learning.
Comprehensive introduction to deep learning with Python. It covers a wide range of topics, including convolutional neural networks, recurrent neural networks, and generative adversarial networks.
Provides an introduction to the Python programming language for data science. It assumes no prior programming experience and covers data types, operators, control flow, functions, classes and modules, and data science basics, including data manipulation, data visualization, and machine learning.
Presents foundational knowledge in natural language processing (NLP) and provides a bridge between theory and application. It covers fundamental NLP methods and algorithms, including statistical models, machine learning, and deep learning.
Provides a conceptual foundation of data analytics and practical insights into data-driven decision-making. It covers topics such as data visualization, data mining, supervised and unsupervised machine learning, text mining, and predictive modeling.
Great resource for beginners who want to learn how to use Python to automate tasks and solve problems.
Practical guide to data analysis using Python. It covers a wide range of topics, including data manipulation, visualization, and statistical modeling.
Comprehensive guide to natural language processing using Python. It covers a wide range of topics, including text processing, machine learning, and deep learning.
Practical guide to machine learning using Python. It covers a wide range of topics, including data preparation, feature engineering, model selection, and evaluation.
Practical guide to using Python for financial applications. It covers a wide range of topics, including data analysis, machine learning, and algorithmic trading.
Comprehensive guide to web development using Python and Django. It covers a wide range of topics, including web development fundamentals, Django architecture, and advanced Django topics.

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