Structuring a lesson of Python for beginners. Any suggestion how to start?

Posted on 2012-09-05
Last Modified: 2012-09-10

How should I begin to teach a class an introduction to programming by using Python? Should I start by writing my own course content? If so how?

Further question, is there an appropriate textbook out there that I can use for my purpose? I have been using Python and C++ for quite sometime, however, creating a lessons for a complete beginner in Python programming from 0, for me, is a big project.

Chiefly, the students that I am about to face comes from diverse background, students, teachers, cooks, web designers, historians, librarians, etc. Some only knows MS-Word, Excel and checking emails. Some don't have a clue what a RAM is. If I say, "please open up a terminal window," or "launch your IDE," I might get 60-90% blank faces.

Having a class of an undergraduate students at uni is fine, as they have about the same prior knowledge of computing and programming. But how should I approach a very diverse audience with none or little programming experience but want to learn the basic of programming by using Python?

Your suggestions to help my students would be greatly appreciated.

Question by:kelaiah
    LVL 41

    Accepted Solution

    > Should I start by writing my own course content?
      Based upon an assumption that if you were an experienced course developer, you wouldn't be asking this question, my answer would have to be: Don't.

    - There are lots of books, and web pages that have a "gentle introduction" to programming, some even use Python. ;-)  I would look for some of these.
    e.g., stuff like this

    - This one is really good

    - Don't "talk down" to (patronize) the students.

    - Find, and use "good" as well as "bad" examples, and explain why the "bad" ones are bad!
      After you have done this, and after you have shown them lots of bad examples, and discussed them:
      Have them start an interactive session, and "import this" to display the "The Zen of Python"... discuss it, with examples!

    - Try to find / use / create examples that make sense to people.

    - Be willing to iterate... i.e., present a little bit of a topic, and then revisit it, adding details, and additional explanations... possibly multiple times.

    - Teach them to "think", not just "write code".  The most difficult teaching situations I had were when the "students" thought they knew better, and started writing code, without really understanding, or even considering multiple approaches.

    * Spend a lot of time helping them figure out how to "debug" their programs, in fact, have them debug some other students program!

    Good luck
    LVL 28

    Assisted Solution

    In my opinion, there is no chance to start teaching Python from scratch with that kind of audience. My experience is (teaching artists to use CorelDRAW) that some people cannot imagine things that are so hardwired into your brain, you even do not know how someone cannot know them.

    It also depends on how old the people are. Anyway, the course will be a success if they get a good feelings from the course: "We have learned something! There is no magic behind the scene. It is only complicated."

    Some people may have problems to imagine what you are talking about. This is one of the main problems (in my opinion) -- the lack of imagination in the area. Nobody can really learn anythin by repeating the terms. There must be the phase of understanding of steps. Forget about explaining technical terms like RAM, processor, etc. If they know nothing about it, they will be or bored or scared.

    Train their imagination based on things and situations they know. Programming is just simulation of real problems inside the computers. Choose the problems that are not too abstract (like mathematical equations -- cooks will not like it ;).

    I suggest to show them games to explain objects. You can start with actors in a movie who play according to the scenario to simulate some situation that is not real, but that could be...

    When starting with programming in the sense of commands, I would try the Guido van Robot and the lessons

    There is a lot of possibilities. However, you have to adopt to the situation.

    It will take a lot of your free time if the lessons are to be good.

    Wishing you all the best ;)

    Author Comment

    @ Honor God, You are correct, I am no expert in designing course material, I only know how to use Python to make things run. Thanks for the links. I'm surprised that I never notice those links before! By the way, could you explain, what do you mean by "Don't "talk down" to (patronize) the students."?

    @pepr, those who enroll are definitely those who are curious, about programming. So, rest assured, there won't be any lazy student in there. Only, how to keep them engaged, without chase them away from the unit.

    I will wait for further replies, if not I will award the points. Thank you for your feedback and patience.
    LVL 41

    Expert Comment

    I have encountered some "instructors" who felt the need to say things in a way that make the students feel bad about their lack of knowledge & experience.  That's what I was talking about.  Please forgive me if I didn't express myself well.

    When I take a class, I want to ask questions to be certain that I learn about the topic.

    I would strongly encourage you to get the students involved with questions, as well as answers.

    Good luck!

    Author Closing Comment

    The solution incorporated some important aspects to consider when teaching programming to newbies. Important links were given to brainstorm and how not to scare away your students.
    LVL 41

    Expert Comment

    Thanks for the grade & points.

    Good luck & have a great day.

    Featured Post

    IT, Stop Being Called Into Every Meeting

    Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

    Join & Write a Comment

    Suggested Solutions

    Introduction On September 29, 2012, the Python 3.3.0 was released; nothing extremely unexpected,  yet another, better version of Python. But, if you work in Microsoft Windows, you should notice that the Python Launcher for Windows was introduced wi…
    Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
    The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
    The viewer will learn how to use and create keystrokes in Netbeans IDE 8.0 for Windows.

    728 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    17 Experts available now in Live!

    Get 1:1 Help Now