Welcome to Data Structures and Algorithms at Southwest University, Chinađź”—

Welcome to the Data Structures and Algorithms course for the 2021 Autumn semester, commencing Wednesday 13/10/2021. The schedule below will have links added to it as the course progresses, linking to:

Material from the 2020 version of this course can be found here .

Lecture readingsđź”—

Your understanding of the lecture material will be much greater if before each lecture, you read through the related textbook sections.

The textbook we use is:

(Other editions are also fine.)

The schedule below lists, for each topic, the related textbook sections you should review.

Homeworkđź”—

Problem sheets will be used during class. The problem sheets will be uploaded during each of the lecture weeks. Click on the links in the schedule to download the problem sheets.

There is also lab material for you to work through using your computer, which you can find here.


Announcementsđź”—


Schedule and links to materialđź”—

This table will be updated as the course progresses.

Week Day Topics Materials Times (GMT+8 Perth/Beijing time)
week 1:
Intro & arrays

Wed
13/10/2021

  • Introduction to algorithms and data structure
  • Abstract Data Types
Textbook readings:

Weiss ch 5 “algorithm analysis”

 
Lecture slides:
week1-lecture-slides.zip

 
Problem sheet:
week1-wed-problems.docx
week1-problems-solutions.docx

 
Source code:
week1-code.zip

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm

Thurs
14/10/2021

  • Java interfaces and generic types
  • Implementing stacks and queues with arrays
Textbook readings:
  • Weiss ch 17 “linked lists”
  • Weiss ch 6.6 “stacks and queues”
  • Weiss ch 5 “algorithm analysis”

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 8:00 am-8:45 am
  • 8:55 am-9:40 am
  • 10:00 am-10:45 am
week 2:
Complexity, sorting and searching

Wed
20/10/2021

  • finish Linked lists
  • Big O notation
  • Java interfaces
  • Sorting and searching algorithms

Textbook readings:

  • Weiss ch 5 “algorithm analysis”
  • Wiess ch 8.5-8.6 “sorting algorithms”
  • Weiss ch 7.1-7.5 “recursion”

 
Lecture slides:
week2-lecture-slides.zip

 
Source code:
week2-code.zip

 
Problem sheet:
week2-problems.docx
week2-problems-solutions.docx

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm

Thurs
21/10/2021

  • Sorting and searching algorithms
Textbook readings:
  • Weiss ch 5 “algorithm analysis”
  • Wiess ch 8.5-8.6 “sorting algorithms”

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 8:00 am-8:45 am
  • 8:55 am-9:40 am
  • 10:00 am-10:45 am
week 3:
Trees

Wed
27/10/2021

  • Recursion
  • Trees and tree operations
  • Binary Search trees and operations
Textbook readings:
  • Weiss ch 7.1-7.5 “recursion”
  • Weiss ch 18.1 “trees”, ch 18.4 “tree traversals”
  • Weiss ch 19.1–19.3 “binary search trees”

 
Lecture slides:
week3-lecture-slides.zip

 
Source code:
week3-code.zip

 
Problem sheet:
week3-problems.docx
week3-problems-solutions.docx

 

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm

Thurs
28/10/2021

  • the collections API
Textbook readings:

Weiss ch 6 “the collections api”

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 8:00 am-8:45 am
  • 8:55 am-9:40 am
  • 10:00 am-10:45 am
week 4:
Trees & queues

Wed
3/11/2021

  • Priority queues and implementations
Textbook readings:
  • Weiss ch 6.9 “priority queues” (specs)
  • Weiss ch 21 “priority queues” (impl)
  • Weiss ch 13.2 “event-driven simulation”

 
Lecture slides:
week4-lecture-slides.zip

 
Source code:
week4-code.zip

 
Problem sheet:
week4-problems.docx
week4-problems-solutions.docx

 

 

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm

Thurs
4/11/2021

  • Priority queues and implementations
Textbook readings:
  • Weiss ch 6.9 “priority queues” (specs)
  • Weiss ch 21 “priority queues” (impl)
  • Weiss ch 13.2 “event-driven simulation”
  • Weiss ch 14.1 “graphs and paths”

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 8:00 am-8:45 am
  • 8:55 am-9:40 am
  • 10:00 am-10:45 am
week 5:
Graphs

Wed
10/11/2021

  • Graph implementations and operations
Textbook readings:
  • Weiss ch 14.1 “graphs and paths”
  • Weiss ch 24.2.2 “minimum spanning trees”

 
Lecture slides:
week5-lecture-slides.zip

 
Source code:
week5-code.zip

 

Problem sheet:
week5-wed-problems.docx
week5-problems-solutions.docx

 

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm

Thurs
11/11/2021

  • Graph search
  • Minimum Spanning Trees and their algorithms
Textbook readings:
  • Weiss ch 14.1 “graphs and paths”
  • Weiss ch 14.5.1 “topological sorting”
  • Weiss ch 24.2.2 “minimum spanning trees”

 
Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 8:00 am-8:45 am
  • 8:55 am-9:40 am
  • 10:00 am-10:45 am
week 6:
Revision

Wed
17/11/2021

  • Revision topics and problems

 
Lecture slides:
week6-lecture-slides.zip

 

Problem sheet:
week6-wed-problems.docx
week6-problems-solutions.docx

 

Lecture recordings:
segment 1 (mp4)   segment 2 (mp4)   segment 3 (mp4)  

  • 14:00 pm-14:45 pm
  • 14:55 pm-15:40 pm
  • 15:50 pm-16:35 pm