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.
![Duke University](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-university-assets.s3.amazonaws.com/6d/3cb3e06c357d40ef60000fb3d12d72/dukesquare_blue.png?auto=format%2Ccompress&dpr=1&w=28&h=28)
![Duke University](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-university-assets.s3.amazonaws.com/8c/3fea3c61b899a0e79075dc8c96195d/dukewidelogo2.png?auto=format%2Ccompress&dpr=1&h=45)
Designing Larger Python Programs for Data Science
Taught in English
Recommended experience
What you'll learn
How to plan program decomposition using top down design.
How to integrate discrete pieces of Python code into a larger, more functional, and complex program.
Skills you'll gain
Details to know
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/31ebcba3851b87d1d8609abf15d0ff7e.png?auto=format%2Ccompress&dpr=1&w=24&h=24)
Add to your LinkedIn profile
July 2024
1 assignment
See how employees at top companies are mastering in-demand skills
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/74c8747e8210831049cf88dd4eefe26c.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=320)
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/de1a6556fbe605411e8c1c2ca4ba45f1.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=259)
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/de1a6556fbe605411e8c1c2ca4ba45f1.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=333)
There are 4 modules in this course
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.
What's included
6 videos2 readings4 programming assignments
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.
What's included
1 video2 readings3 programming assignments
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.
What's included
1 reading1 assignment3 programming assignments
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.
What's included
1 video1 reading2 programming assignments1 discussion prompt
Offered by
Recommended if you're interested in Software Development
Google Cloud
Coursera Instructor Network
Why people choose Coursera for their career
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Felipe_Moitta.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Jennifer_John.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Larry_Tao_Wang_1.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Chaitanya_Anand.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
New to Software Development? Start here.
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/7a1c0e2e779c1ff27cae62480adfe003.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=120)
Open new doors with Coursera Plus
Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
If you subscribed, you get a 7-day free trial during which you can cancel at no penalty. After that, we don’t give refunds, but you can cancel your subscription at any time. See our full refund policy.