Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

The Art of Doing: Python Projects to Master the Fundamentals

via Udemy

Overview

Computer Science Through Python Application. Learn by doing.

What you'll learn:
  • Master fundamental concepts of computer science that are transferable across ALL programming languages.
  • How to actually write YOUR OWN programs. You will not sit back and watch. You will DO!
  • Design and implement programs using functional and object oriented programming to organize larger scale projects.
  • Work with external data files such as text, JSON, and pickle files to read, process, and save data.
  • Think like a programmer! Approach problem solving creatively, breaking each problem down into steps and designing solutions that come to life!

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.

Ihave 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 ATALL. 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.

Syllabus

  • Introduction
  • Unit Overview: Basic Data Types
  • Challenge Problem 1: Letter Counter App
  • Challenge Problem 2: Miles Per Hour Conversion App
  • Challenge Problem 3: Temperature Conversion App
  • Challenge Problem 4: Right Triangle Solver App
  • Challenge Problem 5: Multiplication/Exponentiation Table Program
  • Unit Overview: Lists
  • Challenge Problem 6: Grade Sorter App
  • Challenge Problem 7: Different Types of Lists Program
  • Challenge Problem 8: Grocery List App
  • Challenge Problem 9: Basketball Roster Program
  • Challenge Problem 10: Favorite Teachers Program
  • Unit Overview: For Loops
  • Challenge Problem 11: Binary Hexadecimal Conversion App
  • Challenge Problem 12: Quadratic Equation Solver App
  • Challenge Problem 13: Factorial Calculator App
  • Challenge Problem 14: Fibonacci Calculator App
  • Challenge Problem 15: Grade Point Average Calculator App
  • Unit Overview: Conditionals
  • Challenge Problem 16: Shipping Accounts Program
  • Challenge Problem 17: Coin Toss App
  • Challenge Problem 18: Voter Registration App
  • Challenge Problem 19: Guess My Number App
  • Challenge Problem 20: Rock, Paper, Scissors App
  • Unit Overview: Dictionaries
  • Challenge Problem 21: Thesaurus App
  • Challenge Problem 22: Database Admin Program
  • Challenge Problem 23: Yes No Polling App
  • Challenge Problem 24: Frequency Analysis App
  • Challenge Problem 25: Code Breakers App
  • Unit Overview: While Loops
  • Challenge Problem 26: Factor Generator App
  • Challenge Problem 27: Even Odd Number Sorter App
  • Challenge Problem 28: Prime Number App
  • Challenge Problem 29: Guess the Word App
  • Challenge Problem 30: Powerball Simulation App
  • Unit Overview: Functions
  • Challenge Problem 31: Python Dice App
  • Challenge Problem 32: Python Calculator App
  • Challenge Problem 33: Bank Deposit and Withdrawal Program
  • Challenge Problem 34: Head to Head Tic Tac Toe App
  • Challenge Problem 35: Loan Calculator App
  • Unit Overview: Classes
  • Challenge Problem 36: Pythonagachi Simulator App
  • Challenge Problem 37: Casino Blackjack App
  • Challenge Problem 38: Pykemon Simulator App
  • Challenge Problem 39: Epidemic Outbreak Terminal App
  • Challenge Problem 40: Epidemic Outbreak GUI App
  • BONUS Lecture!

Taught by

Michael Eramo

Reviews

4.7 rating at Udemy based on 1064 ratings

Start your review of The Art of Doing: Python Projects to Master the Fundamentals

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.