The Art of Doing Code 40 Challenging Python Programs Today

Computer Science Through Python Application. Learn by doing.
The Art of Doing Code 40 Challenging Python Programs Today
File Size :
10.43 GB
Total length :
28h 27m



Michael Eramo


Last update




The Art of Doing Code 40 Challenging Python Programs Today

What you’ll learn

Fundamental concepts of computer science that are transferable across ALL programming languages.
Foundations of the Python language as well as how to import and work with 8 libraries such as random, matplotlib, and tkinter.
How to actually write YOUR OWN programs. You will not sit back and watch. You will DO!
40 “Challenge Problems” that include, a problem description, detailed guide, example output, and completed code.
Communicate secretively with a friend by encoding/decoding information based on per-determined bodies of text.
Simulate the Power Ball Lottery and see how adjusting the number of balls affects the likelihood of becoming a billionaire.
See the devastating effect of interest on student loans and graph the results.
Create a GUI interface that simulates the spread of an infectious disease throughout a population.

The Art of Doing Code 40 Challenging Python Programs Today


A working computer with internet connection and access to a web browser.
Python 3 installed (optional).
A desire to learn!


Hello, my name is Michael Eramo.  I am an experienced educator, life long learner, and a self-taught programmer.  I hold official Bachelor’s Degrees in Music Industry, Education, and Physics, a Master’s Degree in Mathematical Science, and a certificate in Software Development from Microsoft.  While I owe my extensive knowledge base in Music, Physics, Mathematics, and Education to the many great educators I have worked with, my understanding of Computer Science is all my own.    I have never taken an “official” computer science course; I am completely self-taught.  However, do not let that deter you from taking this course!  Instead, let it motivate you that you too can learn anything you want to.  Not only have I done it, but I’ve come to realize what works best for the self-taught programmer, and I have perfected the process!See, I had this deep fear right after my son was born that I was done growing as an individual; that the person I was at 30 was going to be the same person I was at 55.  I felt that there was literally ZERO time in the day to do anything other than go to work and be a dad.  That is, until I bought a book on Computer Science, and a sense of wonder was woken.  I’ve read countless books, watched hundreds of videos, and put in thousands of hours exploring and writing code.  I would routinely wake up at 3:00 AM to learn for a few hours before I had to go to my full time job, teaching high school, before I went to my part time job of teaching college.  Days were long, but getting up at 3:00 AM to read, to learn, or to code benefited me more than a few extra hours of sleep.  It helped me realize that I was never done learning; never done growing.  To me, that is what defines a life long learner.   I have years of classroom experience as a high school Physics teacher, Computer Science teacher, and college Mathematics professor.  I am part of the New York State Master Teacher Program; a network of more than 800 outstanding public school teachers throughout the state who share a passion for their own STEM learning and for collaborating with colleagues to inspire the next generation of STEM leaders.  Most importantly, I know what motivates people to learn on their own; to find a way to create time to learn, when there is no time to be had.  I understand that time is valuable and that all learning should be engaging, meaningful, and have purpose.  Combining my expertise as an educator and my own personal interest in self-taught computer science led me to a telling realization;  most educational material for the self-taught programmer is NOT EDUCATIONAL AT ALL.  Instead, it falls into one of two categories:Writing small “snippets” of programs that taken out of context, seem to serve no purpose at all and frankly, are beneath the user.  Prime examples include using a for loop to print out all even numbers from 1 to 100 or using if statements to respond to generic user input.  Here, users are bored and aren’t challenge to create anything with meaning.  There is little purpose other than gaining what is essentially factual level knowledge.  It is a waste of your time.    Watching others code whole “applications” without a true understanding of what is going on.  These are programs whose scope is beyond the user in which there is no clear guide to walk the user through the thought process without just giving them the answers.  Here, without proper support and guidance, the user just defaults to letting someone else unfold the solution for them.  There is little engagement in watching someone else work and rarely a thought generated on one’s own.  It is a waste of time.    Yes, I will admit that some learning does take place in doing simple tasks or watching others complete complicated tasks.  In fact, much of how I learned was done this way.  However, I’m telling you it pales in comparison to the learning that takes place by DOING meaningful and appropriately challenging work.  This is the art of doing. The art of doing is the art form of transforming oneself from a passive learner who watches, to one who sees the process of learning for what it truly is; a mechanism to better oneself.  In “The Art of Doing”, I have worked very hard to put together 40 meaningful, engaging, and purposeful “Challenge Problems” for you to solve.  Each challenge problem is differentiated for 3 levels of learning.  First, you are given a description of the program you are to create and example output.  This allows users an opportunity to solve well defined problems that are meaningful and appropriate in scope.  Here, all of the solution is user generated. It is engaged learning. Second, you are given a comprehensive guide that will assist you in thought process needed to successfully code your program.  This allows users appropriate assistance that tests their knowledge and forces them to generate the thoughts needed to solve the given problem.  It is meaningful learning.   Third, you are given completed code, with comments, to highlight how to accomplish the end goal.  This allows users to reference a working version of the program if they are stuck and cannot solve a portion of the problem without assistance.  Rather than grow frustrated, the user can quickly reference this code to gain intellectual footing, and work back to solving the problem on their own.  It is purposeful learning.  Engaging, meaningful, and with purpose.  These challenge problems are vehicles that not only teach computer science, but teach you the art of doing.  I guarantee that after completing them all you will consider yourself a life long learner and be proud to call yourself a self-taught programmer.  Throughout the scope of this book and its 40 challenge problems, you will get exposed to numerous ideas, theories, and fundamental computer science concepts. By working through all 40 challenge problems, you will gain a mastery level understanding of the following topics:Data Types:Strings: A series of charactersIntegers: Whole numbersFloats: Decimal numbersLists: A mutable collectionTuples: An immutable collectionRanges: A sequence of integersBooleans: A True or False valueDictionaries: A collection of associated key-value pairsControl Flow:For LoopsIf StatementsIf/Else StatementsIf/Elif/Else StatementsBreakPassContinueWhile LoopsDefReturnAssignment, Algebraic, Logical, Members, and Comparison Operators= Assignment+= Compound Assignment-= Compound Assignment+ Concatenation (strings)+ Addition (ints and floats)- Subtraction* Multiplication/ Division** Exponentiation% Modulo DivisionAndOrNotInNot in== Equal to!= Not Equal to< Less than> Greater Than<= Less Than or Equal>= Greater Than or EqualOver 20 Built In Python Functions:print()type()str()int()float()input()round()sorted()len()range()list()min()max()sum()zip()bin()hex()set()bool()super()String Methods:.upper().lower().title().strip().count().join().startswith().replace().split()Lists Methods:.append().insert().pop().remove().sort().reverse().copy().index()Dictionary Methods:.items().keys().values().most_common()And External Libraries:mathdatetimecmathrandomcollectionstimematplotlibtkinter


Section 1: Introduction

Lecture 1 Course Preview

Lecture 2 No installation needed:

Lecture 3 Python 3: Windows Install

Lecture 4 Using PIP: Windows

Lecture 5 Python 3: Linux Install and PIP

Lecture 6 Download the associated eBook

Section 2: Unit Overview: Basic Data Types

Lecture 7 Basic Data Types Unit Goals

Lecture 8 Your First Python Function: print()

Lecture 9 Using Variables Effectivley

Lecture 10 Your First Data Type: Strings

Lecture 11 More On Strings

Lecture 12 Even More On Strings

Lecture 13 More Data Types: Integers and Floats

Lecture 14 Your Second Python Function: type()

Lecture 15 The input() Function

Lecture 16 String Formatting Options

Section 3: Challenge Problem 1: Letter Counter App

Lecture 17 Program Demonstration

Lecture 18 Program Solution

Section 4: Challenge Problem 2: Miles Per Hour Conversion App

Lecture 19 Program Demonstration

Lecture 20 Program Solution

Section 5: Challenge Problem 3: Temperature Conversion App

Lecture 21 Program Demonstration

Lecture 22 Program Solution

Section 6: Challenge Problem 4: Right Triangle Solver App

Lecture 23 Program Demonstration

Lecture 24 Program Solution

Section 7: Challenge Problem 5: Multiplication/Exponentiation Table Program

Lecture 25 Program Demonstration

Lecture 26 Project Solution

Section 8: Unit Overview: Lists

Lecture 27 Lists Unit Goals

Lecture 28 An Introduction to a New Data Type: Lists

Lecture 29 Changing and Adding Elements to a List

Lecture 30 Removing Elements From a List

Lecture 31 Sorting Lists and the len() Function

Lecture 32 Tuples

Section 9: Challenge Problem 6: Grade Sorter App

Lecture 33 Program Demonstration

Lecture 34 Program Solution

Section 10: Challenge Problem 7: Different Types of Lists Program

Lecture 35 Program Demonstration

Lecture 36 Program Solution

Section 11: Challenge Problem 8: Grocery List App

Lecture 37 Program Demonstration

Lecture 38 Program Solution

Section 12: Challenge Problem 9: Basketball Roster Program

Lecture 39 Program Demonstration

Lecture 40 Program Solution

Section 13: Challenge Problem 10: Favorite Teachers Program

Lecture 41 Program Demonstration

Lecture 42 Problem Solution

Section 14: Unit Overview: For Loops

Lecture 43 For Loops Unit Goals

Lecture 44 Looping Through a List of Elements

Lecture 45 Looping Through a Numerical Range

Lecture 46 Looping Through a Portion of a List Using Slicing

Lecture 47 Looping Through Multiple Lists

Section 15: Challenge Problem 11: Binary Hexadecimal Conversion App

Lecture 48 Program Demonstration

Lecture 49 Program Solution

Section 16: Challenge Problem 12: Quadratic Equation Solver App

Lecture 50 Program Demonstration

Lecture 51 Project Solution

Section 17: Challenge Problem 13: Factorial Calculator App

Lecture 52 Program Demonstration

Lecture 53 Program Solution

Section 18: Challenge Problem 14: Fibonacci Calculator App

Lecture 54 Program Demonstration

Lecture 55 Program Solution

Section 19: Challenge Problem 15: Grade Point Average Calculator App

Lecture 56 Program Demonstration

Lecture 57 Program Solution Part I

Lecture 58 Program Solution Part II

Section 20: Unit Overview: Conditionals

Lecture 59 Unit Goals

Lecture 60 A New Data Type: Booleans

Lecture 61 Simple if/else Statements

Lecture 62 if/elif/else Chains

Lecture 63 Nested if/elif/else Chains

Lecture 64 Control Statements: break, continue, and pass

Section 21: Challenge Problem 16: Shipping Accounts Program

Lecture 65 Program Demonstration

Lecture 66 Program Solution

Section 22: Challenge Problem 17: Coin Toss App

Lecture 67 Program Demonstration

Lecture 68 Program Solution

Section 23: Challenge Problem 18: Voter Registration App

Lecture 69 Program Demonstration

Lecture 70 Program Solution

Section 24: Challenge Problem 19: Guess My Number App

Lecture 71 Program Demonstration

Lecture 72 Program Solution

Section 25: Challenge Problem 20: Rock, Paper, Scissors App

Lecture 73 Program Demonstration

Lecture 74 Program Solution Part I

Lecture 75 Program Solution Part II

Section 26: Unit Overview: Dictionaries

Lecture 76 Unit Goals

Lecture 77 A New Data Type: Dictionaries

Lecture 78 Looping Through a Dictionary

Lecture 79 More Complex Dictionary Structure

Section 27: Challenge Problem 21: Thesaurus App

Lecture 80 Program Demonstration

Lecture 81 Program Solution

Section 28: Challenge Problem 22: Database Admin Program

Lecture 82 Program Demonstration

Lecture 83 Program Solution

Section 29: Challenge Problem 23: Yes No Polling App

Lecture 84 Program Demonstration

Lecture 85 Program Solution

Section 30: Challenge Problem 24: Frequency Analysis App

Lecture 86 Program Demonstration

Lecture 87 Program Solution Part I

Lecture 88 Program Solution Part II

Section 31: Challenge Problem 25: Code Breakers App

Lecture 89 Program Demonstration

Lecture 90 Program Solution Part I

Lecture 91 Program Solution Part II

Section 32: Unit Overview: While Loops

Lecture 92 Unit Goals

Lecture 93 While Loops Basics

Lecture 94 The Modulus Operator

Lecture 95 More With While Loops

Section 33: Challenge Problem 26: Factor Generator App

Lecture 96 Program Demonstration

Lecture 97 Program Solution

Section 34: Challenge Problem 27: Even Odd Number Sorter App

Lecture 98 Program Demonstration

Lecture 99 Program Solution

Section 35: Challenge Problem 28: Prime Number App

Lecture 100 Program Demonstration

Lecture 101 Program Solution

Section 36: Challenge Problem 29: Guess the Word App

Lecture 102 Program Demonstration

Lecture 103 Program Solution

Section 37: Challenge Problem 30: Powerball Simulation App

Lecture 104 Program Demonstration

Lecture 105 Program Solution Part I

Lecture 106 Program Solution Part II

Section 38: Unit Overview: Functions

Lecture 107 Unit Goals

Lecture 108 What is a Function

Lecture 109 Creating Your Own Functions

Lecture 110 Return Values

Lecture 111 Local vs. Global Variables Part 1: Integers, Floats, and Strings

Lecture 112 Local vs. Global Variables Part 2: Lists and Dictionaries

Section 39: Challenge Problem 31: Python Dice App

Lecture 113 Program Demonstration

Lecture 114 Program Solution

Section 40: Challenge Problem 32: Python Calculator App

Lecture 115 Program Demonstration

Lecture 116 Program Solution

Section 41: Challenge Problem 33: Bank Deposit and Withdrawal Program

Lecture 117 Program Demonstration

Lecture 118 Program Solution

Section 42: Challenge Problem 34: Head to Head Tic Tac Toe App

Lecture 119 Program Demonstration

Lecture 120 Program Solution Part I

Lecture 121 Program Solution Part II

Section 43: Challenge Problem 35: Loan Calculator App

Lecture 122 Program Demonstration

Lecture 123 Program Solution Part I

Lecture 124 Program Solution Part II

Lecture 125 Program Solution Part III

Section 44: Unit Overview: Classes

Lecture 126 Unit Goals

Lecture 127 Creating a class (The Baby Class)

Lecture 128 Defining Methods (The Baby Class)

Lecture 129 Another Look at Classes Part I (The House Class)

Lecture 130 Another Look at Classes Part II (The House Class)

Lecture 131 Inheritance Part I (The Dog Class)

Lecture 132 Inheritance Part II (The Dog Class)

Section 45: Challenge Problem 36: Pythonagachi Simulator App

Lecture 133 Program Demonstration

Lecture 134 Program Solution Part I

Lecture 135 Program Solution Part II

Lecture 136 Program Solution Part III

Section 46: Challenge Problem 37: Casino Blackjack App

Lecture 137 Program Demonstration

Lecture 138 Program Solution Part I

Lecture 139 Program Solution Part II

Lecture 140 Program Solution Part III

Section 47: Challenge Problem 38: Pykemon Simulator App

Lecture 141 Program Demonstration

Lecture 142 Program Solution Part I

Lecture 143 Program Solution Part II

Lecture 144 Program Solution Part III

Lecture 145 Program Solution Part IV

Lecture 146 Program Solution Part V

Section 48: Challenge Problem 39: Epidemic Outbreak Terminal App

Lecture 147 Program Demonstration

Lecture 148 Program Solution Part I

Lecture 149 Program Solution Part II

Lecture 150 Program Solution Part III

Section 49: Challenge Problem 40: Epidemic Outbreak GUI App

Lecture 151 Program Demonstration

Lecture 152 Program Solution Part I

Lecture 153 Program Solution Part II

Lecture 154 Program Solution Part III

Lecture 155 Program Solution Part IV

Lecture 156 Program Solution Part V

Section 50: BONUS Lecture!

Lecture 157 Learn More About Tkinter and Python GUI Applications!

Beginner programmers who are looking for an opportunity to learn though application rather than direct instruction.,Intermediate programers who are looking to test their skills.

Course Information:

Udemy | English | 28h 27m | 10.43 GB
Created by: Michael Eramo

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top