1 x 2-hour lecture weekly
1 x 1-hour tutorial weekly
1 x 2-hour practical weekly
Enrolment not permitted
1 of COMP1102, COMP1201, ENGR8800 has been successfully completed
Course context
Summer Class Contact:

3 2-hour lectures weekly (for 5 weeks)

2 2-hour practicals weekly (for 5 weeks)
Topic description
This topic does not assume any prior programming experience. The topic is intended as a first course in programming for students who intend to major in computer science and for students from other disciplines who require programming skills. It aims to introduce students to the basic tools and techniques of software development. The topic will cover the following material: the design, analysis, and limitations of algorithms; the study of abstraction as a way of controlling complexity; an introduction to the software development process; aspects of a modern programming language, including variables and types, classes and methods, parameterisation, selection and iteration, and recursion. Intensive workshops on coding design, implementation and testing within a group environment will further extend the student's programming skills. These workshops will investigate the complexity of managing group work and strategies for building successful programs through the implementation of convention rules and structured templates.
Educational aims
The topic aims to help develop:
  1. An understanding of the nature of programming using a modern high-level programming languages
  2. The ability to read, comprehend and write simple programs
  3. An appreciation of the process by which software systems are developed, including their specification, design, implementation, testing and maintenance
Expected learning outcomes
At the completion of this topic, students are expected to be able to:

  1. Demonstrate that they can comprehend basic program control constructs of sequence, selection, and iteration
  2. Demonstrate that they can use programming development environments and tools within a defined context
  3. Demonstrate that they can read pseudo-code and translate it into a readable, working program
  4. Demonstrate that they know the basics of testing and debugging
  5. Demonstrate that they can apply programming principles to solve domain-specific problems
  6. Demonstrate that they know the basics of code management systems for producing code within a collaborative group environment
  7. Demonstrate that they can apply this understanding, knowledge, and skills within the context of professional contributions to the management of an enterprise's information space