Due to COVID-19 restrictions, a selection of on-campus papers will be made available via distance and online learning for eligible students.
Find out which papers are available and how to apply on our COVID-19 website
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|
|Teaching period||Semester 1 (On campus)|
|Domestic Tuition Fees (NZD)||$1,092.15|
|International Tuition Fees (NZD)||$5,004.75|
- COMP 103 or COMP 160
- Schedule C
- Arts and Music, Commerce, Science
Computer Science Adviser (email@example.com)
- More information link
- View more information about COSC 241
- Teaching staff
- 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
- 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 are not required for this paper.
- 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
- 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, heaps) and the algorithms that operate on them
- Understand fundamental sorting algorithms (selection, insertion, quicksort, mergesort and heapsort)
- Have an increased proficiency in Java programming