This
proposal lies somewhere between a revision and a new course.
Essentially, material in the first three computing courses our majors
see (COMP1011 Computing 1A, COMP1021 Computing 1B, and COMP2011 Data
Organisation) has been redistributed amongst three new courses
(COMP1911 Computing 1, COMP1921 Algorithms and Data Structures, and
COMP2911 Engineering Design in Computing 2) which will replace them.
This proposal has four objectives:
- To more
closely match the order in which material is presented in COMP1091 and
COMP2091 so that students in the common first year program will be able
to study alongside computing majors not in the program (eg BSc Comp and
SEng students). So that students will be able to move between the
programs without duplicating or missing important content.
- To increase the integration between our first three courses (currently each works largely in isolation)
- To
update the content coverage to reflect developments in discipline of
computer science and engineering since the current courses were
initially proposed. In particular to increase the emphasis on objected
oriented programming and to introduce material on objected oriented
design.
-
To increase the emphasis on a discipline of design in computing which
follows on from and supports the skills acquired in the new first year
faculty design course.
We are proposing
new course codes: COMP1911, COMP1921 and COMP2911, in order to make it
clear from transcripts who has covered which version of the courses
during the transitional period.
Specific remarks for COMP1911
Overview
COMP1911 is an
introduction to programming using C. It will be the first computing
course taken by computing majors. It is similar in design to our
current second course COMP1021 (which is being replaced) and COMP1091
(the common first year computing course in C). We hope to run a common
set of lectures for 1091 and 1911, and share a common course design. Inputs
Can not assume anything other than basic level of intellegence and interest. Maybe not even interest initially.
Prerequisites: none
Corequisites: none
Outputs (minimum coverage)
Prequisite for: Data Structures and Algorithms, Digital System Structures, Bioinformatics 1
Corequisite for: none
Coverage
Getting started in the labs
- system familiarisation, accounts, email, booking, printing
- installing software at home
- editing
- compile something in week 1
Topics
- types, variables, expressions, control flow
- command line arguments
- multiple files, structure of a c application (.h files etc)
- arrays
- structs
- pointers
- underlying memory representation of data
- memory allocation
- linked lists
- unix literacy (file and directory commands)
- binary numbers
- make
- regexps
Skills
- programming style
- testing - unit tests
- problem solving
- group work
- debugging with printfs
Wider context
Assurance - What
At the end students MUST be able to write small correct C programs with
good style given a clear problem specification.
Identify, appreciate, and sensibly discuss professional and ethical issues
Assurance - How
Practical exam at end of course. Entry test/quiz in the following
course (Data Structures and Algorithms).
Higher Version
Given the diversity and number of students taking this course we will
run a higher version too, at least in session 1.
|