Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Software Development Tools No-Code Development
Business
Entrepreneurship Communication Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certifications Network & Security Hardware Operating Systems & Servers Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Paid Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement & Gardening Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition & Diet Yoga Mental Health Martial Arts & Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Learning Teacher Training Test Prep Other Teaching & Academics
Web Development JavaScript React Angular CSS Node.Js Typescript HTML5 PHP
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Amazon AWS Cisco CCNA Microsoft AZ-900 CompTIA Security+
Microsoft Power BI SQL Tableau Data Modeling Business Analysis Data Analysis Data Warehouse Blockchain Business Intelligence
Unity Unreal Engine Game Development Fundamentals C# 3D Game Development C++ Unreal Engine Blueprints 2D Game Development Mobile Game Development
Google Flutter iOS Development Android Development Swift React Native Dart (programming language) Kotlin Mobile App Development SwiftUI
Graphic Design Photoshop Adobe Illustrator Drawing Canva Digital Painting InDesign Design Theory Procreate Digital Illustration App
Life Coach Training Neuro-Linguistic Programming Personal Development Personal Transformation Life Purpose Mindfulness Sound Therapy Emotional Intelligence Coaching
Business Fundamentals Entrepreneurship Fundamentals Freelancing Business Strategy Online Business Startup Business Plan Blogging Amazon Kindle Direct Publishing (KDP)
Digital Marketing Social Media Marketing Marketing Strategy Internet Marketing Copywriting Google Analytics Email Marketing Startup Advertising Strategy

DevelopmentProgramming LanguagesPython

The Art of Doing: Code 40 Challenging Python Programs Today!

Computer Science Through Python Application. Learn by doing.
Rating: 4.9 out of 54.9 (983 ratings)
74,635 students
Created by Michael Eramo
Last updated 4/2022
English
English [Auto]

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.

Requirements

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

Description

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 characters

  • Integers: Whole numbers

  • Floats: Decimal numbers

  • Lists: A mutable collection

  • Tuples: An immutable collection

  • Ranges: A sequence of integers

  • Booleans: A True or False value

  • Dictionaries: A collection of associated key-value pairs

Control Flow:

  • For Loops

  • If Statements

  • If/Else Statements

  • If/Elif/Else Statements

  • Break

  • Pass

  • Continue

  • While Loops

  • Def

  • Return

Assignment, Algebraic, Logical, Members, and Comparison Operators

  • = Assignment

  • += Compound Assignment

  • -= Compound Assignment

  • + Concatenation (strings)

  • + Addition (ints and floats)

  • - Subtraction

  • * Multiplication

  • / Division

  • ** Exponentiation

  • % Modulo Division

  • And

  • Or

  • Not

  • In

  • Not in

  • == Equal to

  • != Not Equal to

  • < Less than

  • > Greater Than

  • <= Less Than or Equal

  • >= Greater Than or Equal

Over 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:

  • math

  • datetime

  • cmath

  • random

  • collections

  • time

  • matplotlib

  • tkinter

Who this course is for:

  • 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.

Instructor

Michael Eramo
Educator, Master Teacher, Self-Taught Programmer
Michael Eramo
  • 4.7 Instructor Rating
  • 2,964 Reviews
  • 154,643 Students
  • 12 Courses

Hello, my name is Michael Eramo.  I am a life long learner, a self-taught programmer, and an experienced educator.  I hold official Bachelor's degrees in Music, Education, and Physics, as well as a Masters degree in Mathematics.  I also hold a certificate in Software Development from Microsoft. 

I have years of experience as a high school Physics teacher, Computer Science Teacher, and college Mathematics teacher.  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.

I am passionate about learning new things and teaching what I know to those around me in a way that is engaging, meaningful, and with purpose. 

Top companies choose Udemy Business to build in-demand career skills.
NasdaqVolkswagenBoxNetAppEventbrite
  • Udemy Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Investors
  • Terms
  • Privacy policy
  • Sitemap
  • Accessibility statement
Udemy
© 2022 Udemy, Inc.