Programming and Problem Solving
University of Otago
Dunedin, New Zealand
Area of Study
Computer Programming, Computer Science
Taught In English
COMP 160 or COMP 103
Course Level Recommendations
ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.
Recommended U.S. Semester Credits3 - 4
Recommended U.S. Quarter Units4 - 6
Hours & Credits
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.
There are two labs and two lectures per week.
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%
- 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 (eg stacks, queues, lists, sets, priority queues and equivalence relations)
- Have an understanding of the most common data structures used to represent ADTs (eg 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
Java Foundations: Introduction to program design & data structures, second edition, by Lewis, DePasquale and Chase.
Courses and course hours of instruction are subject to change.
Eligibility for courses may be subject to a placement exam and/or pre-requisites.
Some courses may require additional fees.
Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.
Please reference fall and spring course lists as not all courses are taught during both semesters.
Availability of courses is based on enrollment numbers. All students should seek pre-approval for alternate courses in the event of last minute class cancellations
Please note that some courses with locals have recommended prerequisite courses. It is the student's responsibility to consult any recommended prerequisites prior to enrolling in their course.