Proposal to Introduce a New Course (formerly known as subject)

1. Course Details

1.1 Course ID COMP2911
 
1.2 Course name - Long 
Engineering Design in Computing 2
 
1.3 Course Name - Abbreviated
Engineering Design 2
 
1.4 Course Authority ext/email
Richard Buckland 54063 / richardb@cse.unsw.edu.au
 
1.5 Organisational Unit responsible for course
School School of Computer Science and Engineering
Faculty  Faculty of Engineering
Academic Group Code(Faculty) ENG
Academic Organisation Code (Owner)  CSE
 
1.6 Justification of Proposal

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 Data Structures and Algorithms, and COMP2911 Engineering Design in Computing 2) which will replace them.

This proposal has four objectives:

  1. 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.
  2. To increase the integration between our first three courses (currently each works largely in isolation)
  3. 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.
  4. 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 COMP2911

Overview

The engineering design and use of data structures and their associated algorithms. Object Oriented programming and design. Algorithm design methodologies: backtrack, greedy method, divide and conquer, dynamic programming.

Examples are drawn from classical data structures (eg graphs, tables) and more contemporary ones (eg objects, randomized data structures).

Students

  • all CSE students
  • non-CSE students with an interest in computing who have taken COMP1921 Algorithms and Data Structures

Inputs

Can assume the outputs from COMP1911 Computing 1 and COMP1921 Data Structures and Algorithms 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 familiarity. Students will be familiar with ADTs, simple data structures (lists, trees, graphs) and algorithms in them. Students will be familiar with computational complexity.

Prerequisites: COMP1911 Computing1, COMP1921 Algorithms and Data Structures
Corequisites: none

Outputs

Prequisite for: COMP3111 Software Engineering, COMP3121 Algorithms and Programming Techniques, COMP3161 Concepts of Programming Languages, COMP3231 Operating Systems, COMP3311 Database Systems, COMP3331 Computer Networks and Applications COMP3411 Artificial Intelligence, COMP4001 Object-Oriented Software Development COMP3131 Programming Languages and Compilers COMP3151 Foundations of Concurrency, COMP3421 Computer Graphics, COMP3431 An Introduction to Intelligent Agent Architectures, COMP3441 Cryptography and Distributed Systems Security, COMP3511 Human Computer Interaction, COMP3710 Software Project Management, COMP3221 Microprocessors and Embedded Systems
Corequisite for: none

Topics

  • OO programming
  • OO design
  • selecting data structures and algorithms
  • designing data structures (including examples drawn from randomized data structures, hash tables)
  • algorithm design: divide and conquer, dynammic programming, greedy method.

Skills

  • converting problems -> algorithms
  • analyse program time/space efficiency theoretically and empirically
  • groupwork
  • version control
  • programming style and quality control

Assurance - What

At the end of the course students MUST be able to:
  • design effective solutions to problems using OO
  • implement and analyse data structures based on trees, lists, tables, graphs
  • select appropriate data structures and algorithms for problems
  • calculate empirically and/or theoretically the time and space efficiency of simple programs.
  • calculate and understand the implications of bounds on the complexity of simple problems.

Assurance - How

  • assessed lab exercises
  • two or more assignments including a group project
  • formal exam
 
1.7 Consultation Process
School Teaching Committee, school appointed working group, discussion with david taubman in EE.
 
1.8 Units of credit (UOC) Session/s Offered   Hours Per Week
6 UOC  S1 S2 ,5
 
1.9 Pre-requisites one of: COMP1921, COMP1927
  Co-requisites None
  Exclusions None
 
1.10 Proposed Entry in the Faculty Handbook
Course ID COMP2911
Course Name Engineering Design in Computing 2
Staff Contact Richard Buckland
Units of Credit: 5
Session/s offered:  S1 S2    Mode:
 
The engineering design and use of reliable and complex systems. Object Orientation and design. Problem solving design methodologies: backtrack, greedy method, divide and conquer, dynamic methods. Practical assignments, laboratory exercises, formal examination.
 
1.11 Is this course replacing an existing course?
YESCOMP2011
 
1.12 Undergraduate
 
1.13 Core
 
1.14 Program Stage
Offered Year 2007  Stage 2, first offered 2007s1
 
1.15 Program/s in which course will be available
All programs
 
1.16 Proposed teaching methods and assessment practices
Lectures, Laboratory Classes, Tutorials, Assignments, and a formal exam.
 
1.17 Assessment grades to be used
Full range of Grades  
1.18 Mode of delivery
Internal 
1.18.1 Multi-mode Delivery Guidelines
N/A
1.19 Information Technology Requirements for students
Standard resources available in school.
 
1.20 Textbooks
Reference
  • Erich Gamma, et al. Design Patterns, Addison Wesley, 1995.
  • Steven Skiena The Algorithm Design Manual, Springer, 1998.
  • Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
Notes
  • We have not selected a textbook yet. Design is currently an active area, and new texts are appearing regularly. This course will not be offered until 2007. We will select a textbook towards the end of 2006 and advise the library at that time.
  • Design Patterns and The Algorithm Design Manual are listed as references as they are the seminal design texts in this field.
 
1.21 Industrial experience component
None
 

2. Resource Statement
 
2.1 Enrolments
Estimated or Proposed enrolments for the next three years
2006: 0
2007: 300
2008: 300
 
2.2 Resource Requirements
Staffing Requirements
 
Full time Academic Staff  3 hrs/week
 
Part-time Teaching Staff  2 hrs/week
 
General Staff  0 hrs/week
 
Comments
Resource requirements as for the course being replaced
 
Field Costs   N/A
 
Studio/Laboratory Requirements
Standard for CSE courses; already available.
 
Materials Requirements
N/A
 
Equipment Costs
N/A
 
Computing Requirements
Standard for CSE courses; already available.
 
Library Requirements
We should have at least two copies of the text books and and one copy of each of the reference books in special reserve. We should also have one copy of each available for short term loan.
 
Capital Funds requirements
None.
 
2.3 Servicing Implications
N/A
 
2.4 Teaching Arrangements
No additional resources required
 
2.5 Alternative Delivery Arrangements
N/A
 
2.6 Details of Tuition Fees
Proposed fee: Standard for an engineering course of this type.