Intermediate Python Workshop/Projects: Difference between revisions

From OpenHatch wiki
Content added Content deleted
imported>Jesstess
No edit summary
imported>Jesstess
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<p style="background-color: #D7E0FA;"><font size="+2">Short link for this page: http://bit.ly/intermediate-python-projects</font></p>

== Write it from scratch ==
== Write it from scratch ==


Practice solving problems in Python from scratch. These projects will guide you through breaking down the problem into steps and help you check your work along the way.
Practice solving problems in Python from scratch. These projects will guide you through breaking down the problem into steps and help you check your work along the way.


<table cellpadding="10">
* [[Scrabble challenge]]
<tr>
** <b>Project</b>: implement a scrabble solver that will tell you the best Scrabble words given a particular Scrabble rack. Great for cheating at Words with Friends!
<td>
** <b>Skills you'll practice</b>:
[[File:Scrabble.jpg|150px]]
*** breaking down a problem and solving it in Python from scratch
</td>
*** command line option parsing
<td>
*** reading from files
<font size="+1">[[Scrabble challenge]]</font>
*** working with dictionaries and for loops
* <b>Project</b>: implement a scrabble solver that will tell you the best Scrabble words given a particular Scrabble rack. Great for cheating at Words with Friends!
* [[Flash card challenge]]
* <b>Skills you'll practice</b>:
** <b>Project</b>: implement a flash card quizzer from scratch.
** breaking down a problem and solving it in Python from scratch
** <b>Skills you'll practice</b>:
** command line option parsing
*** breaking down a problem and solving it in Python from scratch
** reading from files
*** command line option parsing
** working with dictionaries and for loops
*** reading from files
</td>
*** working with dictionaries and while loops
</tr>
*** working with randomness
<tr>
<td>
[[File:Flashcards.jpg|150px]]
</td>
<td>
<font size="+1">[[Flash card challenge]]</font>
* <b>Project</b>: implement a flash card quizzer from scratch.
* <b>Skills you'll practice</b>:
** breaking down a problem and solving it in Python from scratch
** command line option parsing
** reading from files
** working with dictionaries and while loops
** working with randomness
</td>
</tr>
</table>


== Self-directed projects ==
== Self-directed projects ==
Line 23: Line 41:
Practice the language and practical Python applications through bite-sized projects where we've written the scaffolding for you so you can get to the fun stuff quickly!
Practice the language and practical Python applications through bite-sized projects where we've written the scaffolding for you so you can get to the fun stuff quickly!


<table cellpadding="10">
* [[Twitter]]
<tr>
** <b>Project</b>: Use the Twitter API to write the basic parts of a Twitter client. See what your friends are tweeting, get trending topics, search tweets, and more.
<td>
** <b>Skills you'll practice</b>:
[[File:Twitter.png|150px]]
*** using an API
</td>
*** command line option parsing
<td>
*** reading other people's code
<font size="+1">[[Twitter]]</font>
*** working with lists and iteration
* <b>Project</b>: Use the Twitter API to write the basic parts of a Twitter client. See what your friends are tweeting, get trending topics, search tweets, and more.
* [[ColorWall]]
* <b>Skills you'll practice</b>:
** <b>Project</b>: Program graphical effects for a ColorWall using the Tkinter GUI toolkit.
** using an API
** <b>Skills you'll practice</b>:
** command line option parsing
*** using functions and classes
*** reading other people's code
** reading other people's code
*** working with time and randomness
** working with lists and iteration
</td>
*** working with dictionaries and for loops
</tr>
<tr>
<td>
[[File:Colorwall_matrix.png|150px]]
</td>
<td>
<font size="+1">[[ColorWall]]</font>
* <b>Project</b>: Program graphical effects for a ColorWall.
* <b>Skills you'll practice</b>:
** using functions and classes
** reading other people's code
** working with time and randomness
** working with dictionaries and for loops
</td>
</tr>
<tr>
<td>
[[File:jeopardy_board.gif|150px]]
</td>
<td>
<font size="+1">[[JeopardyDatabase| Databases and Jeopardy]]</font>
* <b>Project</b>: learn how to get data from a database in Python while writing parts of a Jeopardy game, using real Jeopardy data!
* <b>Skills you'll practice</b>:
** the SQL database query language
** how to get data from a database in Python
</td>
</tr>
<tr>
<td>
[[File:grid.png|150px]]
</td>
<td>
<font size="+1">[[Matplotlib| Plotting data with matplotlib]]</font>
* <b>Project</b>: learn how to plot data with the matplotlib plotting library. Ditch Excel forever!
* <b>Skills you'll practice</b>:
** using the matplotlib Python plotting library to analyze data and generate graphs
** reading data from a file
</td>
</tr>
<tr>
<td>
[[File:Snakes.png|150px]]
</td>
<td>
<div id="pygame"></div>
<font size="+1">[[Snakes_Pygame| Make a graphical game with Pygame]]</font>
* <b>Project</b>: Add features to a Snakes game built in Pygame.
* <b>Skills you'll practice</b>:
** using the Pygame library
** using an event loop to make action happen
** manipulating images and sound in Python
</td>
</tr>
</table>


== Online tutorials ==
== Online tutorials ==


<table cellpadding="10">
* [[Make a website with Django]]
<tr>
** <b>Project</b>: Work through the official Django tutorial, where you'll create an interactive poll application.
<td>
** <b>Skills you'll practice</b>:
[[File:Django_pony.jpg|150px]]
*** using the Django web application framework
</td>
*** writing classes and thinking about inheritance
<td>
*** using Python to interact with a database
<font size="+1">[[Make a website with Django]]</font>
*** thinking about how web servers and clients interact
* <b>Project</b>: Work through the official Django tutorial, where you'll create an interactive poll application.
* <b>Skills you'll practice</b>:
** using the Django web application framework
** writing classes and thinking about inheritance
** using Python to interact with a database
** thinking about how web servers and clients interact
</td>
</tr>
</table>


<!--
== In-person tutorials ==
== In-person tutorials ==


<table cellpadding="10">
* Object Oriented Python
<tr>
** <b>Project</b>: Create a mini-banking system with users and accounts.
<td>
** <b>Skills you'll practice</b>:
[[File:Money.jpg|150px]]
*** understanding classes and objects
</td>
*** building an entire program
<td>
<font size="+1">[[Object-oriented Python]]</font>
* <b>Project</b>: Create a mini-banking system with users and accounts.
* <b>Skills you'll practice</b>:
** understanding classes and objects
** building an entire program
</td>
</tr>
</table>
!-->

Latest revision as of 12:56, 25 May 2013

Short link for this page: http://bit.ly/intermediate-python-projects

Write it from scratch

Practice solving problems in Python from scratch. These projects will guide you through breaking down the problem into steps and help you check your work along the way.

Scrabble challenge

  • Project: implement a scrabble solver that will tell you the best Scrabble words given a particular Scrabble rack. Great for cheating at Words with Friends!
  • Skills you'll practice:
    • breaking down a problem and solving it in Python from scratch
    • command line option parsing
    • reading from files
    • working with dictionaries and for loops

Flash card challenge

  • Project: implement a flash card quizzer from scratch.
  • Skills you'll practice:
    • breaking down a problem and solving it in Python from scratch
    • command line option parsing
    • reading from files
    • working with dictionaries and while loops
    • working with randomness

Self-directed projects

Practice the language and practical Python applications through bite-sized projects where we've written the scaffolding for you so you can get to the fun stuff quickly!

Twitter

  • Project: Use the Twitter API to write the basic parts of a Twitter client. See what your friends are tweeting, get trending topics, search tweets, and more.
  • Skills you'll practice:
    • using an API
    • command line option parsing
    • reading other people's code
    • working with lists and iteration

ColorWall

  • Project: Program graphical effects for a ColorWall.
  • Skills you'll practice:
    • using functions and classes
    • reading other people's code
    • working with time and randomness
    • working with dictionaries and for loops

Databases and Jeopardy

  • Project: learn how to get data from a database in Python while writing parts of a Jeopardy game, using real Jeopardy data!
  • Skills you'll practice:
    • the SQL database query language
    • how to get data from a database in Python

Plotting data with matplotlib

  • Project: learn how to plot data with the matplotlib plotting library. Ditch Excel forever!
  • Skills you'll practice:
    • using the matplotlib Python plotting library to analyze data and generate graphs
    • reading data from a file

Make a graphical game with Pygame

  • Project: Add features to a Snakes game built in Pygame.
  • Skills you'll practice:
    • using the Pygame library
    • using an event loop to make action happen
    • manipulating images and sound in Python

Online tutorials

Make a website with Django

  • Project: Work through the official Django tutorial, where you'll create an interactive poll application.
  • Skills you'll practice:
    • using the Django web application framework
    • writing classes and thinking about inheritance
    • using Python to interact with a database
    • thinking about how web servers and clients interact