University of Waikato homepage

Dr

Tony Smith

Senior Lecturer

School of Computing and Mathematical Sciences Dean's Office

Orcid identifier0000-0003-0403-7073
  • Senior Lecturer
    School of Computing and Mathematical Sciences Dean's Office
  • +64 7 838 4453 (Work)
  • University of Waikato

TEACHING AND SUPERVISION INTERESTS

I typically teach third-year algorithms, second-year data structures or computer systems, and a graduate course in bioinformatics.
I have received a number of teaching awards.

TEACHING & SUPERVISION

  • Showing page 1 out of 2
Showing page 1, teaching & supervision 1 to 25 of 32
COURSE TAUGHT
2 Mar 2026 - 28 Jun 2026
This course is for students interested in the art and science of computer programming. It is concerned with advanced data structures and their algorithms. It involves a study of classical and recently discovered methods for solving a diverse range of computational problems. Analysis of important performance characteristics (such as efficiency, scalability, applicability, adaptability, and design) will also be addressed. A survey of problem spaces and techniques for addressing specific examples using useful/interesting algorithms and data structures is offered. Examples typically include: string algorithms, data compression, pattern searching, external methods, dynamic programming, geometric algorithms, heuristic methods, and so forth. The aim is to equip students to address future novel problems, and prepare them for industry and/or research careers. A key objective is to give students a deeper understanding of the connection between computing theory and practice. This course should be considered essential for computer scientists and software engineers.
COURSE TAUGHT
10 Nov 2025 - 15 Feb 2026
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
7 Jul 2025 - 2 Nov 2025
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
24 Feb 2025 - 22 Jun 2025
This course is for students interested in the art and science of computer programming. It is concerned with advanced data structures and their algorithms. It involves a study of classical and recently discovered methods for solving a diverse range of computational problems. Analysis of important performance characteristics (such as efficiency, scalability, applicability, adaptability, and design) will also be addressed. A survey of problem spaces and techniques for addressing specific examples using useful/interesting algorithms and data structures is offered. Examples typically include: string algorithms, data compression, pattern searching, external methods, dynamic programming, geometric algorithms, heuristic methods, and so forth. The aim is to equip students to address future novel problems, and prepare them for industry and/or research careers. A key objective is to give students a deeper understanding of the connection between computing theory and practice. This course should be considered essential for computer scientists and software engineers.
COURSE TAUGHT
11 Nov 2024 - 16 Feb 2025
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
26 Feb 2024 - 23 Jun 2024
This course is for students interested in the art and science of computer programming. It is concerned with advanced data structures and their algorithms. It involves a study of classical and recently discovered methods for solving a diverse range of computational problems. Analysis of important performance characteristics (such as efficiency, scalability, applicability, adaptability, and design) will also be addressed. A survey of problem spaces and techniques for addressing specific examples using useful/interesting algorithms and data structures is offered. Examples typically include: string algorithms, data compression, pattern searching, external methods, dynamic programming, geometric algorithms, heuristic methods, and so forth. The aim is to equip students to address future novel problems, and prepare them for industry and/or research careers. A key objective is to give students a deeper understanding of the connection between computing theory and practice. This course should be considered essential for computer scientists and software engineers.
COURSE TAUGHT
13 Nov 2023 - 18 Feb 2024
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
10 Jul 2023 - 5 Nov 2023
An introduction to bioinformatics, open to students majoring in computer science or biology. It includes an overview of molecular biology, genomics, script language programming, algorithms for biological data, an introduction to machine learning and data mining, and relevant statistical methods.
COURSE TAUGHT
27 Feb 2023 - 25 Jun 2023
This paper covers object-oriented software development in Java focusing on abstract data types and dynamic data structures, while introducing design methodologies in software construction, software process, and software testing.
COURSE TAUGHT
27 Feb 2023 - 25 Jun 2023
This course is for students interested in the art and science of computer programming. It is concerned with advanced data structures and their algorithms. It involves a study of classical and recently discovered methods for solving a diverse range of computational problems. Analysis of important performance characteristics (such as efficiency, scalability, applicability, adaptability, and design) will also be addressed. A survey of problem spaces and techniques for addressing specific examples using useful/interesting algorithms and data structures is offered. Examples typically include: string algorithms, data compression, pattern searching, external methods, dynamic programming, geometric algorithms, heuristic methods, and so forth. The aim is to equip students to address future novel problems, and prepare them for industry and/or research careers. A key objective is to give students a deeper understanding of the connection between computing theory and practice. This course should be considered essential for computer scientists and software engineers.
COURSE TAUGHT
27 Feb 2023 - 5 Nov 2023
This paper provides the "capstone" project required to complete an accredited engineering degree. The paper builds on the knowledge and skills students have gained in the first three years of their professional engineering degree and reinforces the multidisciplinary aspect of engineering. Students will learn how to carry out a Research &Development project as an individual or as part of a team, and also gain an appreciation of the depth and breadth of knowledge and skills required for completing a project that addresses real-world problems.
COURSE TAUGHT
18 Jul 2022 - 13 Nov 2022
An introduction to bioinformatics, open to students majoring in computer science or biology. It includes an overview of molecular biology, genomics, script language programming, algorithms for biological data, an introduction to machine learning and data mining, and relevant statistical methods.
COURSE TAUGHT
7 Mar 2022 - 3 Jul 2022
This paper provides an overview of the operation of computer systems. The central theme is the way in which the hardware and software co-operate to allow the execution of programs written in a high-level language.
COURSE TAUGHT
7 Mar 2022 - 3 Jul 2022
This paper provides an overview of the operation of computer systems. The central theme is the way in which the hardware and software co-operate to allow the execution of programs written in a high-level language.
COURSE TAUGHT
7 Mar 2022 - 3 Jul 2022
This course is for students interested in the art and science of computer programming. It is concerned with advanced data structures and their algorithms. It involves a study of classical and recently discovered methods for solving a diverse range of computational problems. Analysis of important performance characteristics (such as efficiency, scalability, applicability, adaptability, and design) will also be addressed. A survey of problem spaces and techniques for addressing specific examples using useful/interesting algorithms and data structures is offered. Examples typically include: string algorithms, data compression, pattern searching, external methods, dynamic programming, geometric algorithms, heuristic methods, and so forth. The aim is to equip students to address future novel problems, and prepare them for industry and/or research careers. A key objective is to give students a deeper understanding of the connection between computing theory and practice. This course should be considered essential for computer scientists and software engineers.
COURSE TAUGHT
12 Jul 2021 - 7 Nov 2021
An introduction to bioinformatics, open to students majoring in computer science or biology. It includes an overview of molecular biology, genomics, script language programming, algorithms for biological data, an introduction to machine learning and data mining, and relevant statistical methods.
COURSE TAUGHT
1 Mar 2021 - 27 Jun 2021
This paper covers object-oriented software development in Java focusing on abstract data types and dynamic data structures, while introducing design methodologies in software construction, software process, and software testing.
COURSE TAUGHT
1 Mar 2021 - 27 Jun 2021
This course gives a survey of advanced algorithms and analysis of their performance, along with heuristic methods that include basic Artificial Intelligence techniques.
COURSE TAUGHT
9 Nov 2020 - 20 Dec 2020
This paper covers object-oriented software development in Java focusing on abstract data types and dynamic data structures, while introducing design methodologies in software construction, software process, and software testing.
COURSE TAUGHT
2 Nov 2020 - 28 Feb 2021
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
13 Jul 2020 - 8 Nov 2020
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
COURSE TAUGHT
2 Mar 2020 - 28 Jun 2020
This paper covers object-oriented software development in Java focusing on abstract data types and dynamic data structures, while introducing design methodologies in software construction, software process, and software testing. A group project reinforces broader software engineering practices.
COURSE TAUGHT
2 Mar 2020 - 8 Nov 2020
This paper provides the capstone project required to complete an accredited engineering degree. The paper builds on the knowledge and skills students have gained in the first three years of their professional engineering degree and reinforces the multidisciplinary aspect of engineering. Students will learn how to carry out a Research & Development project as an individual or as part of a team, and also gain an appreciation of the depth and breadth of knowledge and skills required for completing a project that addresses real-world problems.
COMPLETED DOCTORAL SUPERVISION
Mark RODRIGUES: Hierarchical, Informed and Robust Machine Learning for Surgical Tool Management (SGR Chief Supervisor)
16 Feb 2023 - 7 Aug 2023
University of Waikato
COMPLETED DOCTORAL SUPERVISION
Hansi GUNASINGHE: Solutions to the unseen domain problem for machine learning-based glaucoma detection from retinal fundus images (SGR Chief Supervisor)
13 Feb 2023 - 13 Jun 2024
University of Waikato