Daniel Mishler's Python Course

Classes Tuesday night, 7:30CST/8:30EST at this link: https://tennessee.zoom.us/my/dannymishler/. It will be a cameras-off style zoom class to start.

The first day of this course is on May 31. If you're on the fence, I encourage you to come to the first day of class and decide after that. There is no cost of enrollment since I am offering this to friends.

We will be coding Coup, the card game, in Python and building progressively better agents to play the game we just built, all while learning the basics of the language.

Feedback

  • Practice 1

    Syllabus

  • Week 1 - GitHub rundown, python basics and classes (basic)
  • Week 2 - python classes and methods (advanced)
  • Week 3 - coup without challenging
  • Week 4 - coup with challenging: human playable
  • Week 5 - coup agents
  • Week 6 - learning opponent's strategies
  • Week 7 - making your strategy unpredictable
  • Week 8 - FFA Coup
  • Week 9 - Extra week for catch up (or a break for one of the weeks)

    The last day of this course is planned to be July 26.

    What to expect

  • 5-10 students all of which who have some sort of connection with Danny.
  • You can feel free to use a nickname to keep anonymous in zoom classes.
  • I'll reach out for and expect a good deal of engagement during the classes. They will be almost as much of discussions as lectures.
  • No prior coding experience necessary to succeed (most of the students will not have any experience)
  • If you do have coding experience, the project is open-ended enough so that you won't get bored.
  • Zoom classes last 1 hour
  • One assignment per week. Assignments will take 1-5 hours. 30 minutes per day should be more than enough.
  • Additional challenges and extensions available for motivated students.
  • There will be evaluations, but they will be mostly for-fun and nonbinding.
  • Missing class for some reason or another? Let me know - we'll get you caught up.
  • Some people find it useful to code along during class. If you feel like you might be one of these people (if you're new, you probably are), then try to situate yourself with a two monitor setup so you can see my screen on one side and yours on another.

    Before you begin

    Follow the setup steps, and feel free to email me if you need any help! If you're having trouble with GitHub, feel free to ask about it at the close of the first class.
  • Get Spyder
  • Get GitHub Desktop
  • Make a GitHub account
  • Clone my repository.
  • Make (and share with me) your repository

    (More description below)

    Anaconda

    This class in Python will use the Spyder IDE found in the Anaconda package for Python. You should download it at the Anaconda homepage. Once you have downloaded it, open it and launch the Spyder application. It should be on the home page. To check that Spyder is working, look at the right side of your screen. You should see a copyright message and something that says "In [1]". Type in the number 1 and press enter. If you see it output "Out[1]: 1", then everything is functioning and you're done with this step.

    As an aside, because we are using Python through Anaconda, we won't need to deal with a few things that other Python programmers will be familiar with, such as pip.

    GitHub

    You will deliver all of your assignments (and maybe one day share your code publicly) on a GitHub repository. GitHub is the most popular version control system and you can use it for much more. If you already know how to use GitHub, use whatever you want to commit/push. If you don't know GitHub yet, go ahead and download GitHub Desktop.

    You should also make a GitHub account, if you don't already have one. You'll log in to this when you use GitHub Desktop.

    The tutorial for GitHub Desktop is okay, and you would learn a little from doing it, but you can skip if safely if you'd like as well. Create a new repository, make sure the local path (it's one of the things you set in the prompt) is something you can find, and make the repository name "coup_" and then your name, so mine would be "coup_mishler." You can use a nickname if you want, as well. Then, publish it on the web publicly, or find it on GitHub.com and add "DSMishler" as a contributor if you'd rather it be private.

    Now, in GitHub Desktop, go to file, then to Clone Repository. Go to the rightmost tab to clone by URL, and clone "https://github.com/DSMishler/Coup_Instructor". Make sure the local path is somewhere you can find. When the time comes to get exercise files from me, you'll get them from this repository. As of May 23, 2022, there is just a "test" file in that repository. Try opening it up in Spyder and seeing if it prints to you that it works.

    How to let me know you're enrolled

    When you're done with all of this, please send me an email at DSMishler@gmail.com with the URL that your GitHub repository is going to be.

    Homepage