In 2009, the School of Computer Science met for a Curriculum Retreat, where we discussed issues with the current curriculum and possible changes.
One topic that caused much conversation was the structure of our first year curriculum. In our discussion we identified several concerns that we felt needed addressing. The first of these was the varied programming ability of our students when entering our undergraduate programs – we have a wide range of commencing students, some of whom have considerable informal programming experience, and some that have none. Other issues that we discussed included the need for redevelopment of the courses to better engage the students, through more interesting practical work and a greater emphasis on practical application; an increased focus on communication skills; an increased focus on testing and software engineering; and dissatisfaction with Java as our primary teaching language.
Since this curriculum retreat we have been working as a School on a new first year curriculum that we hope will address these concerns. We have discussed these changes with student groups and our industry liaison group, and the feedback that we have received has been very promising.
Changes to courses will start in Semester 1, 2011, and will continue through 2012-2013 as we continue to revise the curriculum in light of these changes and feedback from our industry liaison groups and students.
First year Computer Science now consists of three core courses: COMP SCI 1101 Introduction to Programming, COMP SCI 1102 Object Oriented Programming and COMP SCI 1103 Algorithm Design and Data Structures.
Commencing students will be able to select whether they start with the course Introduction to Programming (and undertake all three first year courses), or whether they start with Object Oriented Programming (and take only the latter two first year courses). Students with experience in procedural programming as described in the calendar descriptions for these two courses should consider commencing with the Object Oriented Programming course, while students who have no prior programming experience, or who are not confident in their programming experience should commence with Introduction to Programming.
Students who are studying Engineering (apart from Software Engineering) should undertake a separate stream of programming courses as identified in their program rules.
These courses have been designed to provide greater opportunity for students to practice their programming skills, with less lectures than previous courses and the introduction of collaborative workshops, where students will work in small groups with staff from the School in developing their programming skills.
As you might guess, these changes are exciting for the School but also pose a considerable amount of work in redevelopment. We would appreciate your patience throughout the year as we try to get things right, and also your feedback to help us fix any problems.