Computer Science
Principles of Computer Science: COMPSCI 105 Semester 1, 2017
This course extends the programming skilled obtained from the first programming course (COMPSCI 101) emphasizing good software design through an appreciation of data structures and code efficiency. The course provides an introduction to multidimensional arrays, exception handling, recursion and file input and output. The importance of abstraction and abstract data types is illustrated through the study of traditional data structures (such as lists, stacks, queues, trees, priority queues, heaps and hash tables). The performance characteristics of different implementations of these data structures are studied, aided by an introduction to the performance of searching and sorting algorithms.
Please carefully read the course information document, which contains essential information about the course including the course schedule.
A student who successfully completes this course will be able to:
- Define a class to model and represent an object
- Write code which handles important exception types
- Use a standard data interchange format for reading and writing complex data types
- Write programs that store and manipulate data in standard linear data structures (arrays, linked lists, stacks, queues) and non-linear data structures (hash tables, trees)
- Compare the efficiency of algorithms using standard big-O notation
- Implement recursive solutions to simple problems
- Implement recursive data structures such as linked lists and trees
- Explain the basic algorithm for any of the studied sorting methods
- use regular expressions to extract data from a body of text
Please check Student Services Online for the latest lecture times and the lecture venue (sometimes this changes!)
- Wednesday 1:00PM - 2:00PM, 303-G20 (PLT1)
- Thursday 1:00PM - 2:00PM, Eng1401
- Friday 1:00PM - 2:00PM, 109-B15
- COMPSCI 105 is a practical course, which means you must pass the practical (assignments and labs) and the theory (test and exam) sections separately.
- The pass mark is likely to be 50% but might be lower. If you have not achieved 50% in the practical part you are still advised to sit the exam.
- All marks, lecture recordings and announcements can be found on the Canvas system.
- Please check your marks each week and contact Angela Chang if there are any problems.
We will be programming in Python 3. Programs submitted in solution to assignments should have been tested using Python 3.
- If you must leave for family emergencies etc., PLEASE talk to the lecturer, or somehow get a message to the department. Very few problems are so urgent that we cannot be told quite quickly.
- For problems affecting assignments or tests, see the lecturer, as soon as reasonably possible.
- For illness during exams (or other problems that affect exam performance) students MUST contact the University within ONE WEEK of the last affected examination, to apply for an aegrotat pass (for illness) or compassionate pass (other problems). THE ONE WEEK LIMIT IS STRICTLY ENFORCED.
- If you need extra help with understanding the course material, or preparing for the test or exam, you are very welcome to visit Angela or Mike. The tutors will also be available to help you during the lab sessions in the basement level undergraduate labs, and the lab demonstrators are all able to help with the Compsci 105 material.
- Please remember that there are other sources of assistance that could be of use. Do not forget the student learning centre if you are having trouble keeping up with your courses – see http://www.slc.auckland.ac.nz . ESOL students can obtain targeted language assistance from the delna programme, check http://www.delna.auckland.ac.nz.
-
Related Programmes