Accessibility Skip to Global Navigation Skip to Local Navigation Skip to Content Skip to Search Skip to Site Map Menu

COSC241 Programming and Problem Solving

Programming in Java to solve real-world problems; abstract data types; lists, stacks, and trees; algorithm design.

This paper builds on and extends the knowledge students gained of programming and the Java language in COMP 160. More advanced programming ideas, such as recursion and abstract data type design, are introduced, as well as their implementations in Java. A variety of different data structures are discussed together with the algorithms to query and modify them. Theoretical and practical analyses of efficiency are used throughout the paper.

Paper title Programming and Problem Solving
Paper code COSC241
Subject Computer Science
EFTS 0.1500
Points 18 points
Teaching period First Semester
Domestic Tuition Fees (NZD) $1,018.05
International Tuition Fees (NZD) $4,320.00

^ Top of page

Prerequisite
COMP 160 or COMP 103
Schedule C
Arts and Music, Commerce, Science
Paper Structure
This paper follows on from COMP 160. Its major aims are:
  • To reinforce the abstract data type concept introduced in COMP 160 and to explain some of the most useful abstract data types
  • To explain some important data structures with which to implement these abstract data types
  • To introduce design and analysis techniques for algorithms
  • To give practice in writing medium-scale Java programs (testing, de-bugging, run-time and storage analysis from both a theoretical and a practical viewpoint)
  • To encourage good practice in all aspects of programming
Assessment:
  • Assignment 10%
  • Practical Tests 5% and 10%
  • Assessed Labs 15%
  • Final Exam 60%
Course outline
View the course outline for COSC 241
Graduate Attributes Emphasised
Communication, Critical thinking, Information literacy, Self-motivation, Teamwork.
View more information about Otago's graduate attributes.
Learning Outcomes
Students will:
  • Understand the nature of algorithms and how to analyse their efficiency
  • Understand random number generators and how to make use of them
  • Have an appreciation for abstract data types (ADTs) and a knowledge of the ADTs most commonly used in software development (e.g. stacks, queues, lists, sets, priority queues and equivalence relations)
  • Have an understanding of the most common data structures used to represent ADTs (e.g. arrays, linked lists, binary search trees) and the algorithms that operate on them
  • Understand the structure of graphs and networks and some of the algorithms that apply to them
  • Have an increased proficiency in Java programming
Contact
willem@cs.otago.ac.nz
kaye@cs.otago.ac.nz
Teaching staff
Lecturer: Professor Michael Albert
Professional Practice Fellow: Iain Hewson
Teaching Arrangements
There are two labs and two lectures per week.
Textbooks
Java Foundations: Introduction to program design & data structures, second edition, by Lewis, DePasquale and Chase.

^ Top of page

Timetable

First Semester

Location
Dunedin
Teaching method
This paper is taught On Campus
Learning management system
None

Computer Lab

Stream Days Times Weeks
Attend one stream from
X1 Tuesday 09:00-10:50 9-12, 14-15, 18-22
X2 Tuesday 12:00-13:50 9-15, 18-22
X3 Tuesday 14:00-15:50 9-15, 18-22
AND one stream from
Z1 Friday 09:00-10:50 9-14, 17-22
Z2 Friday 12:00-13:50 9-14, 17-22
Z3 Friday 14:00-15:50 9-14, 17-22

Lecture

Stream Days Times Weeks
Attend
L1 Monday 11:00-11:50 9-15, 17-22
Thursday 11:00-11:50 9-15, 17-22

Programming in Java to solve real-world problems; abstract data types; lists, stacks, and trees; algorithm design.

This paper builds on and extends the knowledge students gained of programming and the Java language in COMP 160. More advanced programming ideas, such as recursion and abstract data type design, are introduced, as well as their implementations in Java. A variety of different data structures are discussed together with the algorithms to query and modify them. Theoretical and practical analyses of efficiency are used throughout the paper.

Paper title Programming and Problem Solving
Paper code COSC241
Subject Computer Science
EFTS 0.1500
Points 18 points
Teaching period First Semester
Domestic Tuition Fees Tuition Fees for 2018 have not yet been set
International Tuition Fees Tuition Fees for international students are elsewhere on this website.

^ Top of page

Prerequisite
COMP 160 or COMP 103
Schedule C
Arts and Music, Commerce, Science
Contact
Computer Science Adviser
Teaching staff
Co-ordinator: Professor Michael Albert
Lecturers: Professor Michael Albert and Dr Stefanie Zollmann

Professional Practice Fellow: Iain Hewson
Paper Structure
This paper follows on from COMP 160. Its major aims are:
  • To reinforce the abstract data type concept introduced in COMP 160 and to explain some of the most useful abstract data types
  • To explain some important data structures with which to implement these abstract data types
  • To introduce design and analysis techniques for algorithms
  • To give practice in writing medium-scale Java programs (testing, de-bugging, run-time and storage analysis from both a theoretical and a practical viewpoint)
  • To encourage good practice in all aspects of programming
Assessment:
  • Assignment 10%
  • Practical Tests 5% and 10%
  • Assessed Labs 15%
  • Final Exam 60%
Teaching Arrangements
There are two labs and two lectures per week.
Textbooks
Java Foundations: Introduction to program design & data structures, second edition, by Lewis, DePasquale and Chase.
Course outline
View the course outline for COSC 241
Graduate Attributes Emphasised
Communication, Critical thinking, Information literacy, Self-motivation, Teamwork.
View more information about Otago's graduate attributes.
Learning Outcomes
Students will:
  • Understand the nature of algorithms and how to analyse their efficiency
  • Understand random number generators and how to make use of them
  • Have an appreciation for abstract data types (ADTs) and a knowledge of the ADTs most commonly used in software development (e.g. stacks, queues, lists, sets, priority queues and equivalence relations)
  • Have an understanding of the most common data structures used to represent ADTs (e.g. arrays, linked lists, binary search trees) and the algorithms that operate on them
  • Understand the structure of graphs and networks and some of the algorithms that apply to them
  • Have an increased proficiency in Java programming

^ Top of page

Timetable

First Semester

Location
Dunedin
Teaching method
This paper is taught On Campus
Learning management system
None

Computer Lab

Stream Days Times Weeks
Attend one stream from
X1 Tuesday 09:00-10:50 9-12, 15-22
X2 Tuesday 12:00-13:50 9-13, 15-16, 18-22
X3 Tuesday 14:00-15:50 9-13, 15-16, 18-22
AND one stream from
Z1 Friday 09:00-10:50 9-12, 15-22
Z2 Friday 12:00-13:50 9-12, 15-22
Z3 Friday 14:00-15:50 9-12, 15-22

Lecture

Stream Days Times Weeks
Attend
L1 Monday 11:00-11:50 9-13, 15-22
Thursday 11:00-11:50 9-13, 15-22