Course Title: Youth Intermediate Python Programming

Date and Place:


This course will be held around 2017 spring break in April. Following please find the schedule:

Date Start Time End Time Classroom
04/08/2017(Sat) 1:00 PM 5:00 PM G5
04/09/2017(Sun) 1:00 PM 5:00 PM G6
04/15/2017(Sat) 1:00 PM 5:00 PM G5
04/16/2017(Sun) 1:00 PM 5:00 PM G5


The Youth Intermediate Python class is designed for the youth in 7th to 12th grade who have done Python programming before. This course will teach students how to build a web application that interacts with PostgreSQL database using Python. Students will also learn how to check in/out code using git and host a web application on Heroku. At last, students will learn how to write a web scraping program in Python.


Python is a language with simple syntax, but with a powerful set of libraries. It is also a popular language to be used to build a web application. After taking this course, you should be able to:
  1. use Python to build a web application based on Pyramid
  2. design simple web pages using HTML and CSS
  3. use HTML forms to interact with backend Python code
  4. use JavaScript to do input validation
  5. create a table and insert/update/delete data using PostgreSQL database
  6. check in/out your code using git
  7. host your web application on Heroku for free
  8. write a web scraping program in Python


This is an intermediate Python course, so a minimum amount of Python programming experience is required. A successful student must have done Python programming before and known some basic web page design concepts.


Course Schedule

Day1(04/08, Sat) Day2(04/09, Sun)
Install Pyramid Web Framework Start a Web Application Introduction to HTML/CSS Modify HTML/CSS on web pages Write a HTML Form Write a Python Backend Form Action Handler Introduction to JavaScript Write JavaScript that Validates HTML Form Inputs Create a Heroku Account Install Heroku Command Line Tool Submit Code to Heroku Using Git Configure an Application on Heroku
Day3(04/15, Sat) Day 4(04/16, Sun)
Install PostGreSQL Client Introduction to Database Create a Database Table Select/Insert/Update/Delete Data Interact with Database in Python Search/Add/Update Data from a Web Form Web Scraping Program in Python

Homework Policy

Homework will be assigned every day and will be due by noon next day. Homework will be uploaded to Google drive where the instructor will check it daily. Although completion of homework is not required, it is strongly recommended.

Instructor: Joshua Huang

Joshua Joshua is a passionate high school student who started programming when he was in 5th grade. The programming languages Joshua uses include Python, Java, SQL, JavaScript and Html. He worked for a startup company as a software engineering summer intern in 2016 and as a software testing summer intern in 2015. Joshua taught a Youth Beginner Python Programming class in 2016 and served as a teaching assistant for a Learn to Program with Python(for Youth) class in 2015.

Sit-in Mentor: Paul Huang. Paul has been working in software industry in bay area for more than 20 years. He used to work for Oracle, Inktomi, Electronic Arts and several startup companies. Paul holds an MS in Computer Science from Stanford University and is a director of engineering for a software company currently.

Class Notes:


  1. To assure all students have some Python programming exeprience, please write just ONE of the following two Python programs
    1. that
      • Allows users to enter a list of numbers separated by ','
      • Output the maximum number.
      • The input and output of the program are something like:
        $ python
        Enter a list of numbers separated by ',': 3,12,1,2,5,7,8
        Maximum number is: 12
      • HINTS:
        • Use input function to read a list of numbers as a tuple.
        • Convert a tuple to list by list(a_tuple)
        • Use list.sort(reverse=True) to sort the list
        • Then output list[0]
    2. that
      • Allows users to enter a list of numbers separated by ','
      • Output the number appears the most times.
      • The input and output of the program are something like:
        $ python
        Enter a list of numbers separated by ',': 3,1,1,2,5,7,3,3,6
        Number appears the most times is: 3
      • HINTS:
        • Use input function to read a list of numbers as a tuple.
        • Use Counter to count each number: from collections import Counter
        • Use Counter.most_common(1) to output the number appeared the most times in a list
        • Then output list[0]
  2. Then send an email to with your name, grade and school name and attach your program EITHER OR to the email.
  3. Instructor will email you with steps to register the class.
  4. Registration fee is $100 that will be donated to River of Life Foundation. Fully refundable if it is canceled 72 hours before class begins. After that, no refund, no credit, will be accepted.
  5. This is for the youth in Grade 7th to 12th with some Python programming experiences.
  6. A workable notebook with Python and IDE installed.
  7. The student needs to follow general school class rules and TSG class rule if specified.
  8. Accept that this is a good-will and volunteering work and is our best-effort operations.