Course Portfolio for Introductory Programming at University of Gloucestershire

cmedia | university |

The content - what is taught and why

Programming is introduced in semester one in a 13-week module (CO102 Programming Fundamentals) having a one-hour lecture followed by a two-hour lab session. Semester two has a follow-on module (CO110   Program Development) that has a faster pace and introduces more difficult concepts.

Over the years that I have taught the introductory module, I have reduced the content more and more. Our aim in semester one is quite modest - to teach the basic programming constructs of variables and types, statements, conditional, repetition, methods and parameters (see semester one module content ). We also aim to inculcate good programming style. We talk about scope as it arises but it is not formally taught. We used to teach arrays but typical students did not understand them, so we now leave this until the second semester. We teach using Java, but we do not follow the 'objects first' approach. The students are taught how to use objects but not to write their own classes. They also use methods from a static class for user input. The pace is far too pedestrian for those who know how to program and they do get frustrated. However, these are in a minority.

The follow-on module in semester 2 has a faster pace and teaches program development and testing approaches (see semester two module content ). Objects and arrays are introduced, as are more general themes such as software quality. Some students still need help with using methods and parameters. Indeed, in the following year, students are still struggling with methods, parameters and arrays. We do not introduce inheritance in the first year as the students are still struggling to understand basic objects. We do introduce the use of javadoc to document the various classes.

Programming is set in a context of the software development lifecycle and this is built upon more in the second semester. We present designs as pseudo-code in the early stages but do not ask students to explicitly write their own pseudo-code until semester 2.

We use the textbook by Charatan and Kans   (2001) Java: the first semester McGraw Hill. Students understand the style of the book and it follows a similar mode of delivery to our module in that objects are taught later. Our notes are quite brief, as we are not trying to reproduce a textbook (see lecture four notes ). We encourage our students to study on their own and refer to the recommended textbooks. Some do this but not all.

Other resources are: a web site for CO102; notes available electronically on a server for both modules; a home written, very simple development environment called goJava used in semester one and one with more features (jEdit) used in semester 2.

The approach adopted is influenced by earlier experiences in teaching programming. I taught Java using an 'objects first' approach at another university and found this quite difficult. It seemed too abstract for the students, despite a lot of small, concrete examples. As objects were introduced before the basic control constructs, the functionality of the objects was limited (see Instructional Design for more discussion of this).

We are reviewing our method of degree delivery at the moment and combining the two programming modules. I am very keen to hear what others are doing so it can feed into our updated design. I am especially interested in techniques and approaches used by people at similar institutions. I would not be so influenced by the teaching methods of someone at a more academically advanced university.

<-- Previous Next -->

 

©2006 Vicky Bush