Proposal for New Subject
COMP1091 Computing 1C
Background
The essential aim of this subject is to provide an alternative to
COMP1011 for non-major students undertaking substantial studies
in Computing.
Some schools in the University either already teach intoductory
Computing subjects or are thinking about doing so, in the context
of new degrees they are developing (e.g. the new financial
mathematics (?) degree offered by the Maths school).
Many of these students will continue on with further studies
in Computing, at least to the level of COMP2011, and the new
flexible course structures being proposed by the University
make this easier to do.
Discussions with these Schools have suggested that they would
like their students to be trained in C (or C++) programming.
In the past, this was (somewhat) handled by the COMP1811-then-COMP1821
strand in first year.
However, there were many problems with this strand, not the least of
which was the fact that it did not provide an effective entry point
into further computing studies.
The plan with this subject is that students would undertake COMP1091
and then enter COMP1021 and continue on the same path as our majors.
There are several ways this could be handled.
(1) We could try to persuade them that Haskell-then-Java, was the
most appropriate path for their students.
(2) We could ignore them and let them go and teach introductory
Computing subjects themselves (as already happens in some
Engineering schools).
(3) We could offer a servicing subject that meets their needs
and integrates well into our own subjects.
Attempts at (1) in the past have failed. The offerings from (2)
are dubious, and certainly don't assist students in continuing
on with further computing studies with us.
There are several advantages to putting these students through a
different program to our own majors:
- satisfy the requirements of these new courses
- reduce the size of COMP1011
- give us more control over the quality of Computing education at UNSW
The main disadvantage that I see:
- two differently-trained cohorts entering COMP1021
- lack of Haskell knowledge in later subjects
The first point is mitigated somewhat by the fact that the current
COMP1021 offering does not draw heavily on Haskell knowledge.
The second could be handled by offering a short certificate-course
in Haskell for COMP1091 students who wished to undertake later
year subjects that used Haskell.
Handbook Entry
COMP1091
Computing 1C
Staff Contact: ???
CP15 S1 or S2 L3 T3
Prerequisites: HSC Maths (?)
Corequisites: ???
Notes: Excluded COMP1011 (?)
Introduction to computers as workplace tools: operating systems,
spreadsheets, databases, web searching and authoring, professional
ethics in using computers.
Introduction to problem solving via computers: defining problems,
reasoning about problems, designing and testing solutions.
Introduction to programming (in the C language):
data, control, functions, libraries, fundamental algorithms.
Practical work: laboratories and programming assignments.
Syllabus Discussion
- Introduction to computers as workplace tools (3 weeks)
-
The aim is to introduce common tools that students across a wide
range of occupations are likely to use.
Start by introducing the idea of interfaces to computer systems
(e.g. Windows, Unix/X), and basic concepts like files, folders,
applications, ...
Show correspondences between Windows interface model and Unix
interface model.
Then look at a couple of applications like: spreadsheets (Excel),
databases (Access) and document authoring (Netscape Composer).
Also say a little bit about effective use of the Web as a
research tool.
- Introduction to problem solving via computers (2 weeks)
-
Essentially, this is an introduction to software engineering.
I'm not sure whether this should appear as a separate strand,
or be integrated into the discussion of C. I certainly wouldn't
suggest trying to spend a lot of time on this before they've
had a chance to play with programming a little and see what
the problems are. Then again, I guess you could always make
the purist argument that we should spell out up-front the
kind of methods they should use in dealing with C ... I worry
about the motivation at this early stage though ...
- Programming in the C language (8 weeks)
-
The standard introduction to C programming ... data structures,
input/output,
control structures and discussion of simple algorithmic paradigms
(e.g. summing a list of numbers),
packaging via functions,
packaging functions into libraries,
brief trip into algorithm comparison (e.g. via sorting).
Throughtout this, we also ned to introduce them to some of
the useful C libraries (string.h, ctype.h, ...).