We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Designing Larger Python Programs for Data Science

Genevieve M. Lipp, Nick Eubank, Kyle Bradbury, and Andrew D. Hilton

Modern programs are complicated structures, with hundreds to thousands of lines of code, but how do you efficiently move from smaller programs to more robust, complicated programs? How do data scientists simulate the randomness of real world problems in their programs? What techniques and best practices can you leverage to design pieces of software that can efficiently handle large amounts of data? In this course from Duke University, Python users will learn about how to create larger, multi-functional programs that can handle more complex tasks.

Read more

Modern programs are complicated structures, with hundreds to thousands of lines of code, but how do you efficiently move from smaller programs to more robust, complicated programs? How do data scientists simulate the randomness of real world problems in their programs? What techniques and best practices can you leverage to design pieces of software that can efficiently handle large amounts of data? In this course from Duke University, Python users will learn about how to create larger, multi-functional programs that can handle more complex tasks.

We don't recommend that this be the first Python course you take, as we'll be covering a decent amount of specific programming syntax. However, if you hold a prerequisite knowledge of basic algebra, Python programming, and the Pandas library, you should be able to complete the material in this course.

In the first module, we’ll discuss top-down design for larger programs, including the programming syntax and techniques that are useful to stitch together larger programs. Then in the following modules, we’ll transition into discussing Monte Carlo simulations and introduce you to the Poker project, the larger program you’ll create by the end of the course. By the end of this course, you should be able to decompose a programming problem into manageable pieces, explain the basics of Monte Carlo Methods, and efficiently integrate smaller pieces of code into a larger complete program. This will prepare you to take the next step in your data scientist journey, creating complex programs that can more creatively simulate real-world problems.

Enroll now

What's inside

Syllabus

Introduction to Larger Programs
This module, you’ll learn how to apply the concepts you’ve learned previously to analyze larger programs. Additionally, we’ll go through the process of program decomposition, to break up a complicated program into smaller steps that we can solve easier. After all of those pieces, we’ll put our pieces together in a programming assignment that combines a lot of the smaller programs we’ve created throughout the module.
Read more
Monte Carlo Methods and Introduction to the Poker Project
This Module, you’ll learn about Monte Carlo methods, which are a common technique we use to simulate a lot of possible outcomes. We’ll also introduce you to the Poker Project that you’ll be working on for the rest of the course. In this module we’ll focus on how we can write code to simulate different possible outcomes for a hand of poker, and the individual programming problems we’ll need to solve to make a complete poker simulation. You’ll create some of these smaller solutions in this module, and receive feedback on these individual pieces before we move onto synthesizing some of these parts together in the next module.
Writing Test Cases and Identifying Sources of Error
This module, you will learn about writing test cases and debugging in a Python program, and apply it to your poker project! Additionally we’ll move forward to the logical evaluation part of the poker project, where you’ll write the code that will allow your program to decide what a winning hand would be, and use some data science techniques to help clean up the data generated by Monte Carlo methods. Similarly to the last unit, you’ll write these individual parts of the program and get feedback on those, before we move on to the next unit, where we’ll synthesize all of these pieces into a complete poker hand simulation.
Integrating Larger Programs
This module, we’ll integrate all of the individual sections of Python code that we’ve written throughout the course into one larger program. This will likely require a bit of troubleshooting and forethought to get all of your previous bits of code working, but you will leverage the test cases and skills you learned in the previous module to accomplish this. We’ll also go over object references, a way that we can directly reference a piece of memory, to efficiently update the information that the various parts of your program will be using. After all of this, we’ll give feedback on your final poker project, and then we’ll ask you to do a short reflection on your poker project and the experience you had creating a larger program from its discrete components.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops basic programming syntax and techniques, which are core skills for data science
Explores Monte Carlo methods, which are standard in industry
Builds a strong foundation for beginners in data science
Taught by Genevieve M. Lipp, Nick Eubank, Kyle Bradbury, Andrew D. Hilton, who are recognized for their work in data science
Examines object references, which is highly relevant to data science
Explicitly requires learners to have a prerequisite knowledge of basic algebra, Python programming, and the Pandas library

Save this course

Save Designing Larger Python Programs for Data Science 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 Designing Larger Python Programs for Data Science with these activities:
Review: Practical Programming
Review this book to strengthen your fundamental understanding of the Python programming language.
Show steps
  • Read the first three chapters of the book.
  • Complete the practice exercises at the end of each chapter.
  • Summarize the key concepts covered in each chapter.
Python Monte Carlo Simulation Tutorials
Follow online tutorials to learn how to implement Monte Carlo simulations in Python.
Browse courses on Monte Carlo Simulation
Show steps
  • Search for online tutorials on Monte Carlo simulations in Python.
  • Select a tutorial that is appropriate for your skill level.
  • Follow the steps in the tutorial to create your own Monte Carlo simulation.
Pandas Practice Drills
Complete these practice exercises to improve your proficiency with data manipulation using Pandas.
Browse courses on Pandas
Show steps
  • Import the Pandas library into a Python script.
  • Create a DataFrame from a CSV file.
  • Perform basic data manipulation tasks, such as filtering, sorting, and aggregating data.
  • Plot data using Pandas.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Study Group: Monte Carlo Methods
Join a study group to discuss Monte Carlo methods and their applications in data science.
Browse courses on Monte Carlo Simulation
Show steps
  • Find a group of peers who are interested in learning about Monte Carlo methods.
  • Schedule regular meetings to discuss the topic.
  • Prepare presentations or lead discussions on different aspects of Monte Carlo methods.
Contribute to a Python Monte Carlo Simulation Library
Contribute to an open-source Python library for Monte Carlo simulations to gain practical experience and improve your understanding of the topic.
Browse courses on Monte Carlo Simulation
Show steps
  • Find an open-source Python library for Monte Carlo simulations.
  • Identify an area where you can contribute to the library.
  • Submit a pull request with your contributions.
Probability Calculator Project
Develop a Python program to calculate probabilities for different scenarios, such as rolling dice or flipping coins, to reinforce your understanding of probability concepts.
Browse courses on Probability
Show steps
  • Design the overall structure of the program.
  • Write functions to calculate probabilities for different scenarios.
  • Integrate the functions into a complete program.
  • Test the program and refine the code.
Poker Simulation Project
Develop a Python program that simulates a poker game and calculate the probability of winning hands.
Browse courses on Monte Carlo Simulation
Show steps
  • Design the overall structure of the program.
  • Write functions to simulate dealing cards, evaluating hands, and calculating probabilities.
  • Integrate the functions into a complete program.
  • Test the program and refine the code.

Career center

Learners who complete Designing Larger Python Programs for Data Science will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

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