*Observations from handling python workshop in engineering colleges*

I handled 5 python workshop/sessions for novices from 8th march to 20th august, each one stretching from 1 hour to 2 days. It was worth the time.

Students who participated in the workshop where from Computer Science, Electronics background of Under Graduate and Post Graduate level. Minimum strength was 60 and maximum was close to 100.

- When handling the strength of 60 students in lab, remember every one have their own pace of picking up.
- Distribute the material in html or pdf format so students can look into it. Some students in the workshop start doing the examples as soon as they receive the material and these students will learn on their own, now you have segmented the students who need instructor support. These students also help their friends when stuck.
- Go slow and repeat twice every concept. Students from engineering college use C, C++. Python’s ease is difficult to digest at first.
- Make sure you don’t stand near your laptop for more than 20 minutes. Teach topic, show the example and move around so the students can approach you and you will get to know the difficulties of students. Not everyone will ask questions.
- Give problems for them to solve and don’t give problems which takes more than 10 minutes to solve. Spend the time in front of students terminal and help the struggling students. At the end of 10 minutes you will know how the students approached the problem and also you can get an insight how much students grasped. This gives you the signal whether your explanation understandable or not.
- Write the code for the problem in front of the students, please don’t show already written code. Discuss what are the approaches for the same problem and how others students solved.
- Having few volunteers to help during workshops is great. Students will start approaching them for hurdles.
- Don’t flood students with too much of data in a single day. Make sure workshop is for only 6 - 7 hours per day. They need to time to digest.
- When you are teaching list comprehensions make sure students write the same example using for loop and show them the one liner. Here most students gets confused with syntax. Now give them more problems to solve using list comprehension.
- Be careful in using variable names, students will use the same variable names in their code.
- Don’t teach
`classes`

for beginners, you will waste lot of time explaining public, private method,`__init__`

,`self`

. Instead use the time to solve problems. - Spend enough time in writing small programs(use text editor) using
`if`

,`else`

,`elif`

,`for`

so that they get used to indentation. - Give problems like greatest of three numbers to show them the use case of
`a > b > c`

rather than using`a > b and b > c`

. - Give problems like finding total number of lines, words in a file. This helps in getting rid of
`for loop with counter`

, rather encourages to use`len(f.readlines())`

. - Don’t teach
`*args`

,`**kwargs`

but spend time in making them understand function can accept functions as parameters, so it becomes easy for them to digest`len(f.readlines())`

. - Make sure to teach
`dir`

and`help`

this helps people who are interested to explore further. - If you want to enforce pythonic way of writing code like list comprehension, passing function to function show few examples comparing pythonic and non pythonic way. Advocate the advantage.
- Leave your email id with students and collect the feedback via google forms or physical form make sure it is anonymous.
- Students will ask recommendation for books, projects etc … Be prepared to handle.
- Don’t teach
`raw_input`

or`input`

teach them how to accept command line parameters.

`There's no such thing as a bad student, only a bad teacher`

- Unknown

#### See also

- Python Typing Koans
- Model Field - Django ORM Working - Part 2
- Structure - Django ORM Working - Part 1
- jut - render jupyter notebook in the terminal
- Five reasons to use Py.test

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.