Lectures by Session | Structured Programming Skip to main content Open main menu Search this site Navigation menu Home Schedule Contains current page: Lectures Show lectures submenu Hide lectures submenu Lectures Overview Overview Lectures by Session (current page) Lectures by Session Lectures by Theme Lectures by Theme Labs Contains current page: Assessments Show assessments submenu Hide assessments submenu Assessments Overview Overview Deliverables Deliverables Contains current page: Help Show help submenu Hide help submenu Help Lecturer, Tutors and Peers Lecturer, Tutors and Peers Software Setup Software Setup How-To Videos How-To Videos FAQ FAQ Online Resources Online Resources Textbooks Textbooks Close main menu Search this site Search this site (powered by Google) Powered by Google Close search Home / Lectures / Lectures by Session Lectures by Session The lecture sessions are listed below including the units covered in each session. There is also an ordering of the units by theme available. Hover over the unit titles to get a list of topics covered, click the buttons to access resources and reveal further details. Buttons to video recordings will appear next to each unit (sometimes multiple if they span more than one lecture session) as they become available. 2022-02-21 Recording: I1 Introduction (35 mins) References: ANU's academic integrity policies S1 Software Development Tools (10 mins) References: IDEs Refactoring Version control Distributed version control Git Git documentation Git: what is version control? Git: what is git? GitLab GitLab documentation IntelliJ documentation IntelliJ git integration Relevant ACM Curriculum Learning Outcomes: SE Tools and Environments 2 SDF Development Methods 9 J1 Introductory Java 1 (15 mins) Java Visualizations: HelloWorld IOTest IOTest, bad input References: Oracle Java Tutorials Waterloo Java Visualizer Standard libraries Java 7 libraries Imperative and functional programming Exact Instructions Relevant ACM Curriculum Learning Outcomes: PL Basic Type Systems 1 J2 Introductory Java 2 (15 mins) Java Visualizations: BasicImperative References: Objects Classes Inheritence Interfaces Object-oriented programming Inheritence Relevant ACM Curriculum Learning Outcomes: PL Basic Type Systems 1 PL Basic Type Systems 2 PL Basic Type Systems 3 2022-02-25 Recording: B1 Alan Turing (1 min) References: Alan Turing Turing machine Turing test Ultra Relevant ACM Curriculum Learning Outcomes: SP History 2 J3 Introductory Java 3 (15 mins) Java Visualizations: Booleans Doubles Integers Strings References: Packages Variables Primitive data types and literals Object-Oriented Programming Concepts Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Programming Concepts 2 SDF Fundamental Programming Concepts 3 J4 Introductory Java 4 (35 mins) Java Visualizations: Arrays Booleans Doubles Integers Strings References: Arrays Variables Operators Operators Expressions, Statements, and Blocks Expressions, Statements, and Blocks Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 B2 Margaret Hamilton (1 min) References: Margaret Hamilton Apollo 11 Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-02-28 Recording: J5 Control Flow 1: Selection (25 mins) Java Visualizations: ControlFlowIfThenElse ControlFlowSwitch References: Control flow if-then-else switch Sequence, selection, iteration, recursion Control flow: selection (choice) Jacquard loom ENIAC simulation of trajectories Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Programming Concepts 4 J6 Control Flow 2: Iteration (30 mins) Java Visualizations: ControlFlowFor ControlFlowWhile References: while and do-while for Branching statements (break, continue) Control flow Control flow: selection (loops) Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Programming Concepts 4 J7 Methods (20 mins) Java Visualizations: Methods References: Defining methods (instance methods) Class members (class methods) Parameters Branching statements (return) Returning a value Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Programming Concepts 5 O1 Classes and Objects 1 (20 mins) Java Visualizations: Objects References: Objects Classes Declaring classes Declaring member variables Constructors Creating objects Using objects Objects and classes Alan Kay on the meaning of object-orientation Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 1 PL Object Oriented Programming 2 PL Object Oriented Programming 3 2022-02-28 Recording: O1 Classes and Objects 1 (20 mins) Java Visualizations: Objects References: Objects Classes Declaring classes Declaring member variables Constructors Creating objects Using objects Objects and classes Alan Kay on the meaning of object-orientation Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 1 PL Object Oriented Programming 2 PL Object Oriented Programming 3 2022-03-04 Recording: B3 Konrad Zuse (2 mins) References: Konrad Zuse Z3 Plankalkül Relevant ACM Curriculum Learning Outcomes: SP History 2 O2 Classes and Objects 2 (40 mins) Java Visualizations: Objects References: The this keyword Controlling access to members of a class Understanding class members Initializing fields Classes Objects Enum types Enum types Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 6 PL Runtime Systems 2 PL Language Translation and Execution 6 J8 Nested Classes (25 mins) References: Nested classes Nested classes B4 Grace Hopper (2 mins) References: Grace Hopper A-0 History of compilers Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-07 Recording: O3 Interfaces (15 mins) References: Interfaces Interfaces Defining an Interface Implementing an Interface Using an interface as a type Interfaces Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 6 J9 Lambda Expressions (20 mins) Java Visualizations: Lambda References: Lambda expressions Method references O4 Inheritance 1 (20 mins) References: Inheritance (concept) Inheritance Overriding and hiding methods Polymorphism Hiding fields Using the keyword super Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 1 PL Object Oriented Programming 2 PL Object Oriented Programming 5 B5 John von Neumann (2 mins) References: John von Neumann von Neumann Architecture Merge sort Monte Carlo methods Middle-square method Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-10 Recording: Not yet available O5 Inheritance 2 (20 mins) References: Object as superclass Writing final classes and methods Abstract methods and classes Inheritence Relevant ACM Curriculum Learning Outcomes: PL Object Oriented Programming 1 PL Object Oriented Programming 2 X1 JavaFX 1 (35 mins) References: What is JavaFX? JavaFX scene graph Working with the JavaFX scene graph HelloWorld, JavaFX style Demonstration of Recursive Tree Homework Challenge X2 JavaFX 2 (15 mins) References: Handling JavaFX events Event handling Lambda expressions Demonstration of Lab 6 Draggable Triangle Relevant ACM Curriculum Learning Outcomes: HCI Programming Interactive Systems 4 PL Event Driven and Reactive Programming 1 PL Event Driven and Reactive Programming 2 B6 Jeanette Wing (1 min) References: Jeanette Wing Computational thinking Wing (2006). Computational Thinking. Communications of the ACM. Liskov substitution principle Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-17 Recording: Not yet available S2 Revision Control (20 mins) References: Git Using IntelliJ Git Integration Git documentation Video: What is version control Video: What is Git? Video: Get going with Git Relevant ACM Curriculum Learning Outcomes: SE Tools and Environments 2 S3 Software Development Teams (25 mins) References: Pondd Sugthana: Reading “Peopleware” Part One. re:Work Guide: Understanding team effectiveness. NYT: What Google Learned From Its Quest to Build the Perfect Team. Danielle Long: How to grow emotionally intelligent engineering teams. Natalie Semczuk: The 10 Most Effective Conflict Resolution Strategies. Stephanie Ray: 10 Conflict Resolution Strategies that Actually Work. How to Make Your Software Engineering Team More Awesome. Relevant ACM Curriculum Learning Outcomes: SE Software Project Management 1 SE Software Project Management 5 SE Software Project Management 10 SE Software Project Management 12 J10 Number, Autoboxing (15 mins) Java Visualizations: Autoboxing and unboxing References: Numbers Autoboxing and unboxing Beyond basic arithmetic Numbers What is Autoboxing and Unboxing in Java? Why 1000 == 1000 returns false but 100 == 100 returns true in java? Java's implementation of a number pool and it effect on equality J11 Character and String (20 mins) Java Visualizations: Arrays of strings with Boggle References: Characters Strings Manipulating characters in a String Comparing strings and portions of strings Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 J12 Generics (10 mins) Java Visualizations: Integer linked list Generic linked list References: Generics Why use generics? Generic types Generic methods Type erasure Relevant ACM Curriculum Learning Outcomes: PL Basic Type Systems 10 PL Basic Type Systems 11 B7 Bob Floyd (1 min) References: Robert Floyd Turing Award 1978 Floyd-Warshall algorithm Floyd's Tortoise and hare Floyd-Steinberg dithering Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-21 Recording: Not yet available J13 Type Inference (20 mins) References: Generic Type Inference Java 10 Local Variable Type Inference Lambda Expressions: Target Typing Relevant ACM Curriculum Learning Outcomes: PL Basic Type Systems 6 S4 Test Driven Development (10 mins) References: Test-driven development JUnit IntelliJ: Testing JUnit web site Relevant ACM Curriculum Learning Outcomes: SDF Development Methods 8 SDF Development Methods 9 SE Software Verification Validation 12 C1 Recursion (45 mins) Java Visualizations: Maternal Line References: Recursion Fibonacci number Mergesort Mike Bostock: mergesort animation Mike Bostock: visualizing algorithms Demonstration of Lab 7 Maze Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Programming Concepts 1 SDF Fundamental Programming Concepts 8 J14 Collections (150 mins) References: Introduction to collections Collections interfaces The Collection interface Collection implementations The Set interface The Set implementation The List interface The List implementation The Map interface The Map implementation Aggregate operations forEach Object Ordering Comparable Comparator Prefer lists to arrays Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 B8 Fran Allen (1 min) References: Fran Allen 1932-2020 Frances Allen Turing Award 2006 Optimizing compilers Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-24 Recording: Not yet available R1 Revision 1: MSE (25 mins) 2022-03-28 Recording: Not yet available J14 Collections (150 mins) References: Introduction to collections Collections interfaces The Collection interface Collection implementations The Set interface The Set implementation The List interface The List implementation The Map interface The Map implementation Aggregate operations forEach Object Ordering Comparable Comparator Prefer lists to arrays Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 B9 John McCarthy (1 min) References: John McCarthy Turing Award 1971 Lisp The birth of Lisp Artificial intelligence What McCarthy thinks of your code. Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-03-31 Recording: Not yet available A1 Lists 1 (75 mins) References: Abstract data types (ADTs) List ADT Dynamic array (array list) Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 A2 Lists 2 (55 mins) Java Visualizations: Linked List References: Abstract data types (ADTs) List ADT Linked list Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 B10 Barbara Liskov (1 min) References: Barbara Liskov Turing Award 2008 Liskov substitution principle CLU Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-04-21 Recording: Not yet available A2 Lists 2 (55 mins) Java Visualizations: Linked List References: Abstract data types (ADTs) List ADT Linked list Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 J15 Exceptions (25 mins) References: Exceptions What is an exception? The catch or specify requirement Catching and handling exceptions Exception handling Relevant ACM Curriculum Learning Outcomes: IAS Defensive Programming 4 SE Software Construction 2 SF Reliabilitythrough Redundancy 1 C2 Hash Functions (10 mins) References: Hash function Properties of a good hash function B11 Ken Thompson (1 min) References: Ken Thompson Turing Award 1983 Unix B Go Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-04-28 Recording: Not yet available C3 Hashing Applications (85 mins) References: Hash function Uses of hash functions Object as superclass (see hashCode()) hashCode() Luhn algorithm Hamming codes rsync MD5 A3 Sets (2 mins) References: Abstract data types (ADTs) Set ADT Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 3 A4 Hash Tables (105 mins) References: Hash table Relevant ACM Curriculum Learning Outcomes: AL Fundamental Data Structures and Algorithms 4 A5 Trees (110 mins) References: Tree ADT Binary search tree Relevant ACM Curriculum Learning Outcomes: AL Fundamental Data Structures and Algorithms 7 B12 Ada Lovelace (1 min) References: Ada Lovelace Analytical engine Note G Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-05-05 Recording: Not yet available A5 Trees (110 mins) References: Tree ADT Binary search tree Relevant ACM Curriculum Learning Outcomes: AL Fundamental Data Structures and Algorithms 7 B13 Fred Brooks (2 mins) References: Fred Brooks Turing Award 1999 The Mythical Man-Month No Silver Bullet Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-05-09 Recording: Not yet available A6 Maps (80 mins) References: Map ADT (a.k.a. associative array) Relevant ACM Curriculum Learning Outcomes: SDF Fundamental Data Structures 2 B14 Shafi Goldwasser (3 mins) References: Shafi Goldwasser Turing Award 2012 Zero-knowledge proofs Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-05-16 Recording: Not yet available C4 Files (50 mins) References: Basic I/O I/O streams I/O from the command line Random access files Buffered streams Data buffer Memory hierarchy Magnetic tape data storage C5 Computational Complexity (60 mins) References: Time complexity Big O notation Analysis of algorithms Space-time tradeoff Relevant ACM Curriculum Learning Outcomes: AL Basic Analysis 8 AL Basic Analysis 9 AL Fundamental Data Structures and Algorithms 2 C6 Formal Grammars (35 mins) References: Formal grammars Extended Backus-Naur form Chomsky Niklaus Wirth John Backus Peter Naur Relevant ACM Curriculum Learning Outcomes: PL Syntax Analysis 1 B15 Robin Milner (3 mins) References: Robin Milner Turing Award 1991 ML Π-calculus LCS Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-05-19 Recording: Not yet available C7 Threads (15 mins) References: Concurrency Concurrency Thread Process Relevant ACM Curriculum Learning Outcomes: OS Scheduling and Dispatch 4 J16 Threads (60 mins) References: Concurrency Thread objects Defining and starting a thread Pausing execution with sleep Joins A simple threads example Synchronization Thread interference Memory consistency errors Synchronized methods Concurrency Thread Process Relevant ACM Curriculum Learning Outcomes: OS Scheduling and Dispatch 4 IAS Defensive Programming 4 PD Communication and Coordination 1 PL Concurrency and Parallelism 3 B16 Anita Borg (1 min) References: AnitaB.org Anita Borg Relevant ACM Curriculum Learning Outcomes: SP History 2 2022-05-23 Recording: Not yet available R2 Final Exam Revision (45 mins) Back to top Acknowledgement of Country The Australian National University acknowledges, celebrates and pays our respects to the Ngunnawal and Ngambri people of the Canberra region and to all First Nations Australians on whose traditional lands we meet and work, and whose cultures are among the oldest continuing cultures in human history. Twitter Facebook Instagram Youtube LinkedIn WeChat Contact ANU Copyright Disclaimer Privacy Freedom of Information The Australian National University, Canberra CRICOS Provider : 00120C ABN : 52 234 063 906 Updated: 10 Mar 2022 | Responsible Officer: School Director | Page Contact: Paul Scott bars search caret-down plus minus arrow-right times arrow-up