A proposal to change our first and second year computing subjects so that we are CFY-proof. There is a great deal of opposition to CFY in the school. The dean seems strongly set on CFY happening. It is uncertain what the outcome will be. This proposal is not about the CFY debate, it is about designing our subjects so that the full or partial implementation of CFY will not be a disaster for the first few comp subjects. The proposal also addresses the other problems above so it will be a benefit even if we manage to reject CFY.
On paper this subject looks quite good. From my reading the content is about 50% faculty driven and 50% done in individual schools. How good it will be in practise is quite another issue. (personally i'm cautiously optimistic). The big problem for us is what it displaces when squeezing it into our programmes. Our argument against it is we *already* teach design in our comp subjects. This proposal strengthens that argument. This proposal is independent of whether or not the faculty design subject is adopted in any of our degree programmes.
That we have 4 comp subjects at 100 level and 200 level (ignoring 1081 and 2021 which remain unchanged). Computing 1, Design 1, Computing 2, Design 2.
|Computing 1||(y1/s1+s2*)||corresponding to 1021/1721 and 1091|
|Design 1||(y1/s2+x2*)||corresponding to 1011/1711|
|Computing 2||(y2/s1)||corresponding to 2041|
|Design 2||(y2/s2)||corresponding to 2011/2711|
*not main offering
Electrical Engineers do Computing 1 → Computing 2. The only prereq for Computing 2 would be computing 1. This means they avoid the material they find irrelevant. If they decide they wish to transfer to one of our degrees after session 1 they then can do so seamlessly and take the main offering of Design 1. If they decide after session 2 then they would take Design 1 in summer session. Ditto for our midyear intakes. That way everyone is square at the start of second year and we need only offer Computing2 and Design2 in once a year.
Our Students do Computing1 → Design1 → Design2 → Computing2. The prereq for Design1 is Computing1. The prereq for Design2 is Design1.
This means both our current, and our proposed (see bill's CFY page) programs continue to work, with only subject name changes required.
These four subjects should have a firm coverage outline. Not so prescriptive that the LIC can't adapt the subject to emerging trends or the particular assignment themes, but enough that later subjects can rely on certain material having been well covered. This consistency is needed to stop material being covered multiple times and disheartening the students.
There should also be sufficient stability and consistency that staff can move easily from one subject to another. So that we have a pool of teaching staff for the junior year subjects, and no one person gets stuck on a particular subject. We should elsewhere consider ways of ensuring this.
Includes some systems coverage including bitwise operations, binary, and exposure to hardware components of computer and, in particular, pointers, memory, and memory allocation. Coverage would probably stop at linked lists (ie trees not required). Programming style and good programming habits. Not complexity. Debugging.
A higher version of the subject would be needed for most of our majors, and for students from other degrees with some programming experience. I would expect we would end up snaffling a number of these students from other degrees.
Practical techniques and skills in constructing software.
OO programming with C++. Perl, useful unix utilities (sed, awk, cvs? ...) Python?
UNSW's CRICOS Provider No. is 00098G