Main site links: Home | Moodle | Theory pages | Java pages

Addressing masteries

From CompWiki

Jump to: navigation, search

Contents

Addressing Masteries

by Thomas Wozniak - Sunday, 30 March 2008, 05:00 PM

One of the most helpful tips I've received so far has been that to show mastery a student needs to show that they planned to use a mastery aspect for a valid reason in section B of the dossier and show the functional programming later as well. I think this will be very difficult for the student. My students, and I'm sure this is partially my fault, tend to write programs without much planning ahead of time. With this idea as a new focus during the planning phase of the dossier, I think my students may become more frustrated, but may earn better marks for their work.

Another idea that was affirmed for me is that it makes more sense to store records (objects) in a linked list when read from a sequential file. I have had students in the past that, understandably so, want to earn as many masteries as possible and try to force RAFs with linked lists and it always seemed counter intuitive to me. I think in the future I may suggest using a tree to store data from a RAF, or not use a separate structure at all with a RAF. Maybe more answers will come for that down the road.

Third, the idea of a polymorphism being the ability to call a method of the same name in different classes was lost on me before now. I always thought of it as just an overloaded method in one class.

The approach to programming demonstrated here has given me some insight as to how I should teach my students in the future. Recently I was introduced to a Java textbook that I will be implementing in my classroom starting next year. Blue Pelican Java is the title of the book. I think that the book is laid out well for high school students and introduces concepts in a logical order. I might have to supplement the book with extra programming assignments, but it is a nice start. For the past five years I've been making up my own sequence and I haven't been satisfied. The book is really written for an AP classroom, but having seen how concepts are presented in it and here in this workshop I think I'll be able to adapt it nicely to the IB program.

The last thing I will address is that I plan on changing the way I teach methods, constructors, etc. to incorporate the ideas expressed in another thread...

public void setName(String name) { this.name = name; }

It will take some getting used to, but I liked the explanation and I think students might understand the idea of passing values to methods a little clearer this way (I hope).

by Richard Jones - Monday, 31 March 2008, 08:19 AM

Hi Woz

I take a fairly extreme view these days that might not suit everyone. I don't allow students to start coding (at least in my classroom) before they have developed a decent analysis and design.

At UWCSEA we did not allow students to alter their design document after it was completed (sections A and B) and made this very clear up front. Students spent 4-6 weeks developing this document.

I've since thought that this might be considered a little over the top smile

Richard

by Thomas Wozniak - Monday, 31 March 2008, 01:22 PM

Yeah

I try to do the same thing. Some students jump the gun on their own, but I tell them these steps need to be finished before starting to code.

Some students, most actually, don't have a good enough grasp on the masteries and maybe even the techniques by the time they start the design process. I have to find a better way to introduce these concepts to them so they can apply them quicker.

I'm considering having students add a section at the end of their designs in section B to show what changes they had to make once they started implementing their plans.

Thanks

by Denice Harvey - Tuesday, 1 April 2008, 01:31 PM

I find this a very interesting issue.

This year I insisted that the students completed sections A and B before starting to program. Section A was not a problem but the students really struggled with section B - they really did not grasp what was expected of them. However, once they started programming a lot of things fell into place for them. They then went back and rewrote parts of B. I know that this is not how it supposed to be done but in reality I think there is room for this approach. I know that when I program, I often need to start writing the program before the problem really becomes clear. Does anyone else agree with this approach?

Denice

by Richard Jones - Wednesday, 2 April 2008, 09:16 AM

Hi Denice

I wouldn't like to think that students were spending a lot of time on this kind of re-design. After all the Subject Guide indicates that "the student may deviate from it or expand it [it being the design] during Stage C, without penalty". My bold. Page 58.

Cheers Richard

by Denice Harvey - Thursday, 3 April 2008, 11:35 AM

Hi Richard,

I realise that the ideal is that students design and then implement. Let me give you an example: I had a student that planned to use a linked list and discussed it in section B. During implementation, he decided that a treemap was more appropriate and used that instead. Now, how could he claim mastery of this ADT when he had not discussed it in section B?

Denice

by Richard Jones - Thursday, 3 April 2008, 01:01 PM

Hi Denice

You're right, it would be difficult.

Richard

by Thomas Wozniak - Thursday, 3 April 2008, 11:34 PM

I like to put the blame on myself more than not. Like I said, I need to find a way to teach this so that we don't run into this problem as often and I'm getting some great ideas in this workshop.

But, I think the situation that Denise is bringing up is probably pretty common.

So, is IB asking too much? Is IB really marking students down for not planning correctly, but making a wise decision to change a plan that is not going to work or be as efficient? You bolded the "without penalty," but losing a mastery factor is a major penalty.

by Richard Jones - Friday, 4 April 2008, 11:50 PM

There is a similar thread running on the OCC at the moment and I believe it is clear to everyone that IB is asking too much at this point. There are a number of issues which compound the difficulty:

The masteries are now looking a bit old and should be brought up to date to reflect the fact that few programmers ever need to write a quicksort or make a linked list from scratch. Java has these facilities built right into the language. We also don't need to write our trig and math functions in assembler any more.

A college computer science course is the place to learn those things.

The coupling between the design and implementation is a problem becuase of the situation Denice notes. We can't realistically expect school students to be able to completely think through a coding problem of this size and complexity.

So, for the future all I can say is that IB is aware of the problem and is actively looking at ways to fix it.

However, we have to deal with the situation as it is now and how it will affect our current generation of students. For me, the way I handle it is:

   * Make sure the problem has a suitable scope (never too big);
   * I always tell my students to aim for 6 specific, achievable objectives;
   * Make sure it is open-ended so that it can be expanded if need be;
   * Make sure they do a design that is good enough to see them through;
   * If in doubt, stick with the classic database;

When you start talking to students about "risks" they often take a more conservative and less adventurous/creative approach. This is bad but a fault of the current program.

The problem is for inexperienced teachers (who don't know about the points above, never having had many students through the program) and those who have a less than complete grasp of what the masteries entail; hence these workshops.

In terms of global influences, I am sure that it is right that hardly any programming will be done in high-wage countries in the future and that much of it may be done by machine anyway.

Where I see it paying off is for the students I see who go on to Computer Science and become analysts and project leaders and those who go on to other degrees (eg economics) and then discover that their programming skills are really useful when they get a project on, say, complex modelling with Excel. Leading edge programming for the web is another area where this kind of course gives a good, solid background.

So it may continue to shrink as a course but there is still hope if we can reduce the difficulties.

Richard

Personal tools
TOOLBOX
LANGUAGES