Computer Science


Lectures

Announcements

  • Clark's revision slides, and Diana's revision slides, are now available at the bottom of this page. Clark is now recording his discussion of these slides and will make this available via Cecil. A3 marks will be posted this evening, and will become visible to you on Cecil tomorrow.
  • The lecture slides / handouts found here are subject to revision, at any time before the lecture is delivered. Corrected versions will be published here, if mistakes are discovered during or after the lecture.
  • Events of interest:
    • Waterfall and Agile from the Trenches, by Matt Sinnock, IEEE NZ North Computer Society seminar (students very welcome to attend!), 1-2pm Tuesday 26 August, Eng3.402. "I'll be talking about real examples of what I've seen in the organisations I've worked with and what about Agile methods has worked for me to help deliver better results and to enjoy my job ... My career has spanned 20 years of delivery of software using methods from traditional project management through to Agile..."
  • Software in the news:
    • Cisco report reveals top security weak spots, Java tops the list (Tech Times, 5 August 2014): "... The Cisco report shows a number of systems were categorized as being actively exploited by hackers, and the company urges patches to be implemented immediately. Not surprising was the fact that Java remains the No. 1 software to be exploited, with some 93 percent of all web attacks beginning with Java. ..."
    • Are Python and Objective-C Worth Learning? (Dice tech advice, 6 August 2014): "Last week's article on the five programming languages you'll need next year (and beyond) didn't include two important languages: Python and Objective-C. Python's exclusion sparked a passionate response from some readers, to say the least, and led us to craft a follow-up to emphasize Python's importance to the programming world. ..."
    • A few months ago, a large, US-focussed, tech-placement webservice published an analysis of "... the combination of skills and experience hiring managers search for... The number one request by a large margin: Java/J2EE. For a programming language that started to be commercialized about 20 years ago, it's [sic] stranglehold on modern development is unshakable, including as a framework for the emerging - Hadoop - and of course, java plays a part in Android (#31) and many other requests on the list. ... New grads shouldn't fret, hiring managers searching for 'computer science' (#33) should equate to demand for those with recent diplomas..." Graphic of top-ten tech skills. Press release, May 2014.
    • Kiwi students win big at Microsoft's Imagine Cup: "A group of aspiring student technologists from the University of Auckland has won $50,000 at Microsoft's Imagine Cup in Seattle over the weekend. Kiwi team Estimeet won the Innovation category at the event for their social interaction app, called 'Estimeet'. Team Estimeet members Hayden Do (19), Jason Wei (19), Chris Duan (30), and Derek Zhu (22) designed the app to track the real-time locations of people making their way to business or social meetings. ..." Note: one of the members on this team (Hayden Do) was a student in COMPSCI 230 last semester.

Course Information Sheet

  • Important Information about CompSci 230 S2 2014 (in PPTX and PDF): Version 1.0 of 2014-07-18.

Theme A: The Object-Oriented Design Paradigm (weeks 1-3, 6)

  1. First set of lecture slides (in PPTX and PDF), with Jarfiles and Zargofiles used when preparing these slides, version 1.5 of 2014-07-29. Reading assignment #1:
  2. Second set of lecture slides (in PPTX and PDF), version 1.0 of 2014-07-29.
  3. Third set of lecture slides (in PPTX and PDF), with the zargofile used to create UML diagrams for these slides: version 1.1 of 2014-03-12.
  4. Fourth set of lecture slides (in PPTX and PDF): version 1.3 of 2014-08-01, amended treatment of interfaces. umlexamples.zargo, GameInterfacePlayer.zargo: zargofiles used to create UML diagrams for these slides.
  5. Fifth set of lecture slides (in PPTX and PDF): version 1.31 of 2014-08-07.
  6. Sixth set of lecture slides (in PPTX and PDF): version 1.4 of 2014-08-04.
  7. Seventh set of lecture slides (in PPTX and PDF): version 1.2 of 2014-08-04.
Slides presented in Week 6:
  1. Continuation of Java Implementation part 2 (PDF, example code referenced in lecture).
  2. Java Implementation part 3 (PDF, example code referenced in lecture).

Theme B: Frameworks (weeks 4-6)

  1. Introduction to Frameworks and GUIs (PDF).
    Reading:
  2. GUI Programming 1 (PDF, example .java files referenced in lecture).
  3. GUI Programming 2 (PDF, example .java files referenced in lecture).
    Reading:
  4. GUI Design and Modelling 1 (PDF).
  5. GUI Design and Modelling 2 (PDF, example .java files referenced in lecture).
  6. GUI Layouts (PDF, example .java files referenced in lecture).
    Reading:
  7. Custom Widgets and Drawing (PDF, example code referenced in lecture).

Theme D: Software Quality (weeks 7-9)

    Reading:
    • Myers, Glenford. "The Art of Software testing", 3rd edition, Wiley, 2012 (sections from chapters 1, 2 and 9).
    • Vogel, Lars. "JUnit tutorial", version 2.5 (sections 1, 3, 4 and 5).
  1. Software quality - what and how? (PDF, PPT).
  2. Key developer practices (PDF, PPT).
  3. Black box testing (PDF, PPT).
  4. White box testing (PDF, PPT).
  5. Myers' testing principles (PDF, PPT).
  6. Testing in Waterfall (PDF, PPT).
  7. Testing in XP (PDF, PPT).
  8. Famous failures (PDF, PPT).

Theme C: Application-Level Concurrent Programming (weeks 10-12)

  1. Threads, a first introduction (1) (PDF, example code referenced in lecture).
    Reading:
  2. Threads, a first introduction (2) (PDF, example code referenced in lecture).
  3. High-level concurrency with SwingWorker (PDF, example code referenced in lecture).
    Reading:
  4. Synchronization (PDF, example code referenced in lecture).
  5. Recursive Parallelism and Lock objects (PDF, example code referenced in lecture).
    Reading:
  6. Optimistic concurrency control (PDF, example code referenced in lecture).
  7. Callables, Futures and Thread Pools (PDF, example code referenced in lecture).
  8. The Producer-Consumer design pattern (PDF).
    Reading:
  9. Revision lecture (PDF).

Revision

  1. Clark's revision slideshow.
  2. Diana's revision slideshow.


Apply now!


2015 Handbook

Postgraduate study options

Computer Science Blog



Please give us your feedback or ask us a question

This message is...


My feedback or question is...


My email address is...

(Only if you need a reply)

A to Z Directory | Site map | Accessibility | Copyright | Privacy | Disclaimer | Feedback on this page