• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 630
  • Last Modified:

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


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.

  • 3
  • 2
2 Solutions
HonorGodSoftware EngineerCommented:
> 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
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 http://gvr.sourceforge.net/ and the lessons http://gvr.sourceforge.net/lessons/rfrank/.

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 ;)
kelaiahAuthor Commented:
@ 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.
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

HonorGodSoftware EngineerCommented:
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!
kelaiahAuthor Commented:
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.
HonorGodSoftware EngineerCommented:
Thanks for the grade & points.

Good luck & have a great day.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now