Curriculum changes

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.

We have also changed the programming language for our first year programming courses. The Introduction to Programming courses will now use Javascript, while the latter two first year courses will use C/C++. We have decided, however, to move away from the concept of a primary teaching language for our programs, and instead will adopt curriculum streams that will ensure students are exposed to 2-3 core languages.

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.

Advertisements

5 thoughts on “Curriculum changes

  1. This is sad and great.
    Mixed feelings.

    I am mature age and working towards preparing for entry to COMPSCI @ Adelaide in 2013 (I need to get high school math and so on).
    Primarily my interests in computing revolve around contributing to BSD operating systems … which are written in plain old C.

    At first I resisted the idea of having to study an extensive amount of JAVA (and even more so the idea of having hardly any C at all).
    JAVA is a great language though. Right?
    I’m kind of enamoured with it now – C and JAVA are the flag waving procedural and OO languages. It seems like a good balance.

    So on one hand I’m really happy about this – C, C and more C but I wonder if C++ is sufficiently different … to not seem like the same language and confuse everything.

    As far as Javascript goes … ouch.
    That’s COMPSCI 1101 though right?
    The Computing & the Internet subject is still PHP?
    Again I’m horrified by PHP – surely you could choose a scripting language that I’m fluent at. :]
    Still it makes sense. There’s nothing really in the same ballpark for ubquitiy and “internetness” …

  2. Hi,

    Java is indeed a good language, but we question whether it is good as a teaching language – i.e. a language that students should learn to program in. One of the reasons that we chose JavaScript as a first language is that it is fairly simple, and you can see the results of your programs very easily. However, we have also been looking at alternatives, such as processing, and python/jython.

    For our second and third courses, we are using C++ now, which although also a complicated language, does give students direct exposure to memory management which we, and our local industry partners, feel is very important.

    Rest assured though, that we will still be using Java in some of our courses. We feel that it is important that students are exposed to several languages. In the end, you will have to learn many languages in industry so it is good to have that flexibility.

    Kat

  3. Hi Katrina.

    > Java is indeed a good language, but we question whether it is good as a > teaching language

    As in initial initial?
    Is this why there’s lot of Karel and BlueJ and so on?
    Java is too “deep end”?

    Do you know if the Internet & Computing course is still PHP?

    > For our second and third courses, we are using C++ now …
    > does give students direct exposure to memory management which we,
    > and our local industry partners, feel is very important.

    I like most of that and hopefully I’ll get close enough to C to be useful afterwards … but I have a couple of questions.
    Obviously you’re the expert here but …
    Would it be a great thing for South Australians to move towards the lingua franca of open source operating system development?
    I’ve been looking at programming jobs in Adelaide for years and I’m not seeing much C (which is not an issue an and of itself) but, there’s no community of developers here (grassroots or otherwise) that are innovating in open source.
    It saddens me that for all our bluster (from the government) and while we might have a good tech sector, there’s no addressing some bigger issues – why aren’t we almost exclusively running open source software in government (or the private sector)?
    Why are we always playing follow the leader to closed source, overseas based operating systems and depriving ourselves of financial and innovative benefits?
    I don’t have a problem with either of those things per se but I believe there are good reasons to not only have a skilled local workforce but to also have some body of independence and the inertia that follows …
    Sure this can be achieved anywhere, Java, C++, C#, whatever but to break the shackles … nothing beats a from the operating system up approach and my perception is that every skilled person in other languages that are commonly closed source gets rolled into some (overseas based) corporate structure usually doing application level stuff … right?

    The most glaringly obvious way for people with C skills to “get involved” is to do operating system programming right?
    Especially considering that much of that domain is open source.
    We get freedom at a primary level for our community … but we also get freedom for programmers …

    While that may seem backward to industry … I believe it’s exactly what’s good for our state and where we should have been heading for the last ten years.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s