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 COMP1921
Overview
COMP1921 introduces abstraction and complexity; and the fundamental
algorithms and data structures of computing. It will be the second computing
course taken by computing majors. It is similar in design to our current third
course COMP2011 Data Organisation (which is being replaced) but with
ADTs and an introduction to Programming in the Large replacing the
Object Oriented material. Object Orientation remains in our new third course COMP2911 Engineering Design in Computing 2.
Inputs
Can [only] assume the outputs from COMP1911 Computing1. Students will be able
to write small correct C programs with good style given a clear problem
specification. Students will be familiar with unit testing, debugging
via print statements, simple unix commands, cse lab setup.
Prerequisites: COMP1911 Computing1
Corequisites: none
Outputs (minimum coverage)
Prequisite for: COMP2911 Engineering Design in Computing 2, COMP2110 Software System Specification
Corequisite for: none
Content
-
complexity: calculating, estimating, measuring
-
Big-O notation
-
Abstract Data Types
-
stacks, queues
-
priority queues and heaps
-
recursion
-
mergesort, heapsort, quicksort
-
binary search trees
-
self-balancing trees
-
tree representation and algorithms
-
graph representation and algorithms
Skills
-
programming style: craftsmanship and quality control
-
unit testing
-
problem solving
-
group work, version control
Assurance - What
At the end of the course students MUST be able to:
Assurance - How
-
assessed lab exercises
-
assignments
-
group project
-
formal exam
-
entry test/quiz in COMP2911 Engineering Design in Computing 2
|