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.
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.
涵盖的内容
6个视频3篇阅读材料4个编程作业
显示有关单元内容的信息
6个视频•总计20分钟
Course Introduction: Moving on to Larger Programs•2分钟
Software Engineering vs. Data Analysis•3分钟
Random Story: Planning•5分钟
Random Story: from Parsing to Blank Types•3分钟
Random Story: from Blank Types to Categories•4分钟
Random Story: from Categories to Backreferences•3分钟
3篇阅读材料•总计65分钟
Putting it All Together: Top Down Design•50分钟
Report a problem with the course•5分钟
Random Story: Overview•10分钟
4个编程作业•总计720分钟
Random Story Step 1•180分钟
Random Story Step 2•180分钟
Random Story Step 3•180分钟
Random Story Finish•180分钟
Monte Carlo Methods and Introduction to the Poker Project
第 2 单元•小时 后完成
单元详情
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.
涵盖的内容
1个视频2篇阅读材料3个编程作业
显示有关单元内容的信息
1个视频•总计6分钟
Poker Project Introduction•6分钟
2篇阅读材料•总计15分钟
More on Monte Carlo•10分钟
Poker Assignment Breakdown•5分钟
3个编程作业•总计540分钟
Poker Project: Card•180分钟
Poker Project: Deck•180分钟
Poker Project: Input•180分钟
Writing Test Cases and Identifying Sources of Error
第 3 单元•小时 后完成
单元详情
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.
涵盖的内容
1篇阅读材料1个作业3个编程作业
显示有关单元内容的信息
1篇阅读材料•总计60分钟
Rules of Poker•60分钟
1个作业•总计180分钟
Poker Test Cases•180分钟
3个编程作业•总计540分钟
Poker Project: Hand Evaluation•180分钟
Poker Project: Simple Probabilities•180分钟
Poker Project: Pandas•180分钟
Integrating Larger Programs
第 4 单元•小时 后完成
单元详情
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.
Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. 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.
What will I get if I subscribe to this Specialization?
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.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.