Lista de tópicos

  • Geral

  • Week 1 (10/21 - 10/26)

    • The first thing you'll want to do is get familiar with basic programming in Python. If you'll be using your own computer (at least sometimes), download the most recent version of Python 3, which you can do for free here. Do a custom install, check Add to Path, and then check every possible box. Next, you'll want to install Pygame. This might be as simple as finding the Command Prompt on your PC (or Terminal on a Mac), right clicking (Command click on Mac) to open it with Administrator privileges and typing in 

      pip install pygame

      If the computer has both Python 2 and 3 (as do our EMU labs), try typing in 

      python3 -m pip install pygame

      If you're on a Mac, try typing

      sudo pip install pygame

      If none of those work, check in with me. I'll try a couple things and then perhaps refer you to someone even more tech-savvy if I can't figure it out. In any case, you can put the pygame on hold until Week 2 while you dive into Python in general. 

      Now, how to get yourself acquainted with Python? Here are some of my suggestions, but feel free to do whatever you want in your own style!

      1. Sign up for an account on the CS Circles website. During your registration for the account, be sure to put daniel.showalter as your guru (double check your spelling!) Go through as many exercises as possible, skipping over ones that feel like busywork. This is my favorite overall source for learning Python, because it's a blend of instruction and practice.

      2. If you like textbook learning, try reading through the first several chapters of  Think Python: How to Think Like a Computer Scientist  and then practicing what you're learning in IDLE (which should come automatically with your Python download).

      3. If you learn well from videos, this one seems to be a comprehensive, highly-rated intro to all the Python basics (I haven't watched it myself):

      Another good video option is Python Socratica -- they're much more bite-sized videos and go from the beginning (shown below) up through highly advanced topics; I've found them concise and informative.

      4. I personally learn well from puzzles and challenges, so after I did several chapters in CS Circles, most of my self-teaching came from working through CheckiO with a lot of experimentation and internet searching! When you do solve a puzzle, be sure to publish it and then take a look at how the experts solved the same puzzle.

      5. Coding Bat is similar to CheckiO, but on a smaller scale (you can finish several Coding Bat puzzles in the time it would take to do one CheckiO puzzle). The warm-up exercises have a nice feature where you can try it a bit and then show the answer. I strongly suggest setting up a (free) account, so you can track your progress.

      6. w3schools offers examples, quizzes, and some instructional tips for learning Python (and other languages).

      7. And most importantly, ASK QUESTIONS! Ask your peers, ask CS majors, ask tutors, ask me, and above all, ask the internet -- internet searching is essential for beginning through advanced programmers.

    • To provide a common experience before we jump into individual projects, we'll be working through the first four chapters of Making Games with Python & Pygame by Al Sweigart (thanks, Al, for making it freely available!). This first week, make sure that you have access to a computer with Python and Pygame installed, and then read through the rest of Chapter 1 in Making Games (you can go straight to "How to Use this Book".)

    • Here is a study guide for the Competency Check. Here are the solutions. Questions on the competency check will closely follow those on the study guide, but little details may be different to make sure you understand rather than memorizing. In addition to these questions, there will be one longer program you will need to write -- for that question, you may use Python and will still get full credit (for the other questions, changes made when using Python will only be worth half credit).

      Remember this is a low-stakes exam. You need to eventually pass it with a score of 80% or higher, but you will have additional chances.

  • Week 2

    • Actively work through Chapter 2: Pygame Basics in our Sweigart online text. "Active" reading means that you should try things out in IDLE along the way, work through each of the exercises, and seek out answers to any questions you have (from me, a peer, a tutor, the internet, etc.).


    • In-class assignment: Coding Bat

      On the Python portion of Coding Batgo to Prefs > Share to and input my email address: daniel.showalter@emu.edu; be sure to include your name on that Prefs page so I know who you are. Complete at least 7 challenges by Wednesday (if you were in CS 145, you should make sure that the total you've completed is at least 10, but this can include whatever you did in CS 145). 

  • Week 3

    • Actively work through Chapter 3: Memory Puzzle in our Sweigart online text. "Active" reading means that you should try things out in IDLE along the way, work through each of the exercises, and seek out answers to any questions you have (from me, a peer, a tutor, the internet, etc.).


    • Project 1 is due before class on Friday -- email me a zipped foler with all the files or a message confirming that it is finished and on GitHub. Here is the grading rubric we came up with in class on Monday.

  • Week 4

    • Actively work through Chapter 4: Slide Puzzle in our Sweigart online text. "Active" reading means that you should try things out in IDLE along the way, work through each of the exercises, and seek out answers to any questions you have (from me, a peer, a tutor, the internet, etc.). 

      If you prefer, you may choose a different chapter instead to work on this week, but please check with me first.


    • Project 2 is due before class on Friday -- email me a zipped foler with all the files or a message confirming that it is finished and on GitHub. Here is the grading rubric.

  • Week 5

    • Final Project. You have quite a bit of freedom for your final project. It should be a substantial project, it should use Python, and you should run it by me -- do those three and you'll be fine. Here is an overview of some projects that past students have done; you can contact them or ask me for more details. It might even be possible (with their permission) to use their code as a starting place to do something more impressive.

      Below are a couple inspirations for ideas (you'll want to go beyond these tutorials, but these are great starting places).

      Learn how to manipulate images (photos): link

      Coding music with EarSketch: link (or play with this basic sound code snippet for Python -- requires Windows)

      Use a chapter of Sweigart's text that we didn't look at yet: link

    • Another option is to explore how Python is used with a different software or discipline. (The below links are just results from quick Google searches; if you choose one of these, you should do a few searches of your own for the most helpful explanations on how to get started.) If you choose one of these, you would go through a tutorial and create a basic product. For your presentation to the class, you'd give an overview of how Python can be used with the software and then show your basic product.

      Python and ArcGIS (mapping)

      Python and MATLAB (engineering)

      Python and SPSS (sociology, psychology, education, statistics)

      Python and Excel (anything that uses spreadsheets)

      Python and SciKit-Learn (machine learning)

      Pygame and video game design (games)

      Python and Django (website design)

      Python and Selenium (social media automation)

    • Pybraries. This week you'll browse through many of the Python library options beyond the built-in ones, choose one, explore it in some depth, and give a brief 3-minute feature presentation of the library on Friday. You can choose whether to give an overview of the library/package or to just showcase a couple specific commands. To install most of these libraries, you'll need to use pip or something similar (in most cases, the same process you used to install Pygame). It's very possible that you'll want to continue learning about your library and develop it into your final project -- or that you'll be attracted to one on Friday so much that you'll want to use it.

      Here's a list to get you started, but there are MANY more to browse and choose from!

  • Week 6

    • You should have a final project approved by me by the end of Monday's class period. Continue to work on your project. Here is the grading rubric; let's make some final decisions about how we will evaluate the final projects.

  • Week 7

    • Your final project is due before class Friday. Before class Friday, email me a zipped folder with all of your code/files or let me know that it's on GitHub. Be sure to read over the rubric and make sure that you've done a thorough job of commenting your code and documenting your process.

      We will continue presentations on the following Monday, and during the exam period (8-10am) on Friday. Attendance is required, and is counted as part of your final project grade.