Programming Difficulties

Background

The work in this section is being done in a slightly different order. In most sections I have you READ first and then WRITE second. In this section I want to reverse those. I want you to think about the problem before the "experts" tell you what they think

The end goal of this topic is for each participant to possess an annotated list of common programming errors. The annotations should include names and explanations that provide understanding and alternatives for "fixing" them. I firmly believe that by the process of developing this list (in addition to the actual finished product) will enhance both your understanding of programming and your ability to respond to student difficulties.

 

Day 1: Write

I would ask you to START this process before you attempt the readings on Day 2.  I want your first pass at this idea to come from your own memories and experiences rather than from research literature. 

Your first task is to individually identify difficulties that a novice programmer might encounter. You may remember some that you have encountered. You can, of course, examine your email conversations with instructors or review the videos from Fundamentals of Programming to identify additional ones. You may use whatever format seems most useful to you, but I recommend including name, error message (for syntax errors) or difficulty (for logic errors), cause(s) of the problem, and fix(es) for the problem. Note: syntax errors will have error messages and logic errors will not.

Sample items are included below.




 

Day 2: Read

I asked you to think through your experiences for Day 1 because I wanted you to put your own personal experiences on this first. Once you have a good starting list that comes from your own experiences, I want you to do some reading on what the "research literature" has identified as some of the common difficulties that new programmers have when learning how to program.

The list below is not a full assigned reading list.  That is, I do not expect you to read every last detail in each of these papers.  Instead, I would ask you to "browse" these three resources to start with so you understand what they are about. Don't worry about the details. Get the big picture first:

 

Once you have done this I would ask you to REVISIT each one focusing in more detail on the sections pointed out below:

 

Day 3: Revise/Add

Now that you have done some readings, it is likely that you are remembering some things you had forgotten on your first pass. Take the oppporunity to extend your list or revise/clarify some of your initial ideas. In other words, feel free to add/update what you wrote about on Day 1 in light of these new materials, thoughts, ideas, etc. from Day 2.

Begin to think about this as something that you could hand to your students to help them work their way through difficulties you think they might experience as a novice programmer.

 

Day 4: Share in SG

Make arrangements to meet with your SG partner(s). DISCUSS your lists with each other. Each of you is still responsible for your own list, but you may discuss what you wrote and may realize that you left out some things based on this discussion. Or that you need to be more clear about certain ideas.

 

Day 5: Finalize

Feel free to make a last edit based on your conversation with your Small Group.

 

Submission

Your final list for the week from this activity counts as a competency demo in the course. As always, there is a lot of room for personal style and emphasis when creating this list. That goes into account when grading. But it is still fair to consider this as an opportunity to see if you are compent with this topic. Make sure that your final submission reflects this intention.

Please submit this via Blackboard by the end of the week.