Principles of Computer Science: COMPSCI 105 Semester 2
This course extends the programming skilled obtained from the first programming course (COMPSCI 101) emphasising good software design through an appreciation of data structures and code efficiency. The course provides an introduction to objects and classes, exception handling, algorithm analysis and recursion. The importance of abstraction and abstract data types is illustrated through the study of traditional data structures (such as linked lists, stacks, queues, trees 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.
A student who successfully completes this course should be able to:
- define a class to represent an object
- write code which handles exceptions
- use a standard data interchange method to read and write complex data types
- write simple programs that use standard linear data structures to store data (Arrays, Linked Lists, Stacks, Queues)
- write simple programs that use standard non-linear data structures to store data (Hash Tables, Trees)
- compare algorithms based on their Big-Oh performance
- 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
- Labs (10%)
- Assignments (15%)
- Test (15%)
- Exam (60%)
COMPSCI 105 is a practical course, which means you must pass both 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.
- Contributes 15% to your final grade
- Closed book
- No calculator
- Date: Tuesday 23rd August
- Details TBA
- Room locations:
- The final exam is worth 60% of your final mark.
- It is a 2 hour exam. Please check Student Services Online for a confirmation of the date and time.
- Examination room lists will be posted online and on Campus noticeboards by 5.00pm the day before your examination.
- The exam is closed book, and calculators are not permitted.
- Exams from previous semesters can be found at the University library site under "Readings & Exams".
The recommended textbook is "Problem Solving with Algorithms and Data Structures" by Brad Miller and David Ranum. This is an open-source book, so we have made minor edits to the text and digital copies are freely available from the COMPSCI 105 website.
- Online textbook (interactive)
- Printed textbook (downloadable)
Please check Student Services Online for the latest lecture times and the lecture venue (sometimes this changes!)
Stream 1 Times:
- Tuesdays 10 - 11am, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
- Wednesdays 10 - 11am, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
- Thursdays 10 - 11am, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
Stream 2 Times:
- Tuesdays 4pm - 5pm, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
- Wednesdays 4pm - 5pm, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
- Thursdays 4pm - 5pm, 303-G23 (Sci Maths & Physics, Room G23, i.e., MLT 1)
You should attend one 1-hour lab each week. Labs are described in more detail on the labs page. Each lab is worth 1% of your final mark. Labs start in week 2 of the semester.
There are two assignments in total: each assignment is worth 7.5% of your final mark. Assignments are described in more detail on the assignments page.
A forum for class discussions is available at http://forums.cs.auckland.ac.nz/. Please read the Compsci 105 forum regularly. On the Compsci 105 forum, you may discuss topics related to this course and you will find useful information about the lectures, labs and assignments. Any announcements about the course will be posted in the Announcements thread on the Compsci 105 forum.
- If you miss a lecture, you should catch up as soon as possible by reading the corresponding lecture notes and by watching the corresponding lecture recording.
- If you miss the deadline for an assignment and have a valid reason, you should see the lecturer whose assignment it is.
- If you miss the test/exam for any valid reason, or you sit the test/exam but believe that your performance was impaired for some reason, then you should apply for an aegrotat, compassionate or special pass consideration. For more detailed information, refer to the Examinations website under the Illness, injury or misfortune affecting examinations section.
We will be programming in Python 3. Programs submitted in solution to assignments should have been tested using Python 3.
- If you need extra help with understanding the course material, or preparing for the test or exam, you are very welcome to visit the lecturer(s). 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 services if you are having trouble keeping up with your courses – see http://www.library.auckland.ac.nz/student-learning. ESOL students can obtain targeted language assistance from the DELNA programme, check http://www.delna.auckland.ac.nz.
We will make any announcements which affect the class at the lectures. We will also send announcements to the class through Canvas.