Podcast
Questions and Answers
Which of the following is NOT a topic covered in the first week of this course?
Which of the following is NOT a topic covered in the first week of this course?
- Introduction
- Sorting algorithms (correct)
- Analysis techniques
- Recursive algorithms
What percentage of the final grade is allocated to the final exam?
What percentage of the final grade is allocated to the final exam?
- 20%
- 60%
- 40%
- 80% (correct)
Which of the following is NOT a prerequisite for this course?
Which of the following is NOT a prerequisite for this course?
- Experience with programming in Java
- Knowledge of basic calculus
- Understanding of object-oriented programming concepts
- Familiarity with pseudocode (correct)
What is the main purpose of complexity analysis in this course?
What is the main purpose of complexity analysis in this course?
Which of the following courses uses concepts learned in ADS 2?
Which of the following courses uses concepts learned in ADS 2?
What is the primary focus of the first part of the course?
What is the primary focus of the first part of the course?
What is the primary focus of Algorithmics II?
What is the primary focus of Algorithmics II?
Which of the following is NOT a key concept introduced in ADS 2?
Which of the following is NOT a key concept introduced in ADS 2?
What is the main text used for the ADS 2 course?
What is the main text used for the ADS 2 course?
According to the slides, where is the first lecture held?
According to the slides, where is the first lecture held?
When do the weekly labs for ADS 2 begin?
When do the weekly labs for ADS 2 begin?
Where are the labs held for ADS 2?
Where are the labs held for ADS 2?
How many lectures are planned for this ADS 2 course?
How many lectures are planned for this ADS 2 course?
What defines an algorithm?
What defines an algorithm?
Which of the following is NOT an example of an algorithm?
Which of the following is NOT an example of an algorithm?
How can an algorithm be specified?
How can an algorithm be specified?
What is a key characteristic of the INSERTION-SORT algorithm?
What is a key characteristic of the INSERTION-SORT algorithm?
Which data structure is often associated with algorithm creation?
Which data structure is often associated with algorithm creation?
What does the running time of an algorithm typically do?
What does the running time of an algorithm typically do?
In terms of memory, what does 'in-place' mean for an algorithm?
In terms of memory, what does 'in-place' mean for an algorithm?
What is a property of a stable sorting algorithm like INSERTION-SORT?
What is a property of a stable sorting algorithm like INSERTION-SORT?
Which of the following best describes the correctness of an algorithm?
Which of the following best describes the correctness of an algorithm?
What is one common practical application of algorithms in the internet?
What is one common practical application of algorithms in the internet?
Which of the following statements about algorithms is false?
Which of the following statements about algorithms is false?
An example of an algorithm that can find the greatest common divisor is:
An example of an algorithm that can find the greatest common divisor is:
Which of the following best describes a practical use of algorithms in biology?
Which of the following best describes a practical use of algorithms in biology?
Flashcards
What is an algorithm?
What is an algorithm?
A step-by-step procedure to solve a problem.
What is a data structure?
What is a data structure?
A way to organize and store data efficiently.
Why study algorithms?
Why study algorithms?
Essential for understanding how computers work and for developing efficient software.
What is array sorting?
What is array sorting?
Signup and view all the flashcards
When are the ADS 2 lectures?
When are the ADS 2 lectures?
Signup and view all the flashcards
What is an ADT (Abstract Data Type)?
What is an ADT (Abstract Data Type)?
Signup and view all the flashcards
What is pseudocode?
What is pseudocode?
Signup and view all the flashcards
What is complexity analysis?
What is complexity analysis?
Signup and view all the flashcards
What is Java?
What is Java?
Signup and view all the flashcards
What is a linked list?
What is a linked list?
Signup and view all the flashcards
What is a tree?
What is a tree?
Signup and view all the flashcards
Alternative definition of an algorithm
Alternative definition of an algorithm
Signup and view all the flashcards
Sorting
Sorting
Signup and view all the flashcards
String matching
String matching
Signup and view all the flashcards
Euclid's algorithm
Euclid's algorithm
Signup and view all the flashcards
Ways to specify an algorithm
Ways to specify an algorithm
Signup and view all the flashcards
Routing protocols (Internet)
Routing protocols (Internet)
Signup and view all the flashcards
Indexing for search engines (Internet)
Indexing for search engines (Internet)
Signup and view all the flashcards
Public-key cryptography (Internet)
Public-key cryptography (Internet)
Signup and view all the flashcards
Data compression (Internet)
Data compression (Internet)
Signup and view all the flashcards
DNA analysis (Biology)
DNA analysis (Biology)
Signup and view all the flashcards
Optimisation problems and AI
Optimisation problems and AI
Signup and view all the flashcards
Arrays (data structure)
Arrays (data structure)
Signup and view all the flashcards
Linked lists (data structure)
Linked lists (data structure)
Signup and view all the flashcards
Study Notes
Course Introduction
- Course title: Algorithms and Data Structures 2
- Lecturer: Dr. Michele Sevegnani
- Department: School of Computing Science, University of Glasgow
- Contact email: [email protected]
- Course year: ADS 2, 2024
Course Structure
- 11 lectures, two per week
- Lecture 1: Tuesdays at 11:00 AM in Main Building 255 Humanity LT
- Lecture 2: Thursdays at 11:00 AM in Main Building 220AB Hunter Halls
- 1-hour weekly lab sessions
- Lab sessions start in week 2 (beginning January 15th)
- Labs will be held in BO 706 or Kelvin Building Lab 320 (locations may be subject to change)
- Attendance at lectures and labs will be monitored
Course Materials
- Lecture slides available on Moodle at the start of each week.
- Video lectures available on Moodle.
- Lab sheets available via Moodle.
- Textbook recommendations:
- Goodrich, M.T., Roberto Tamassia, and Michael H. Goldwasser. Data structures and algorithms in Java. John Wiley & Sons, 2014.
- Cormen, T.H., et al. Introduction to algorithms. MIT press, 2009.
- Sedgewick, R. Algorithms in Java, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching). Addison Wesley, 2002.
Course Content
- The course content is divided into weeks with various topics.
- A table of topics is provided, listing the topics covered each week. Details below: Week 1 : Introduction, Analysis techniques, Recursive algorithms Week 2: Sorting algorithms, Analysis of recursive algorithms Week 3: Analysis of recursive algorithms, Introduction Week 4: Linked lists Week 5: Abstract Data Types Week 6: Trees Week 7: Binary search trees, Balanced trees Week 9: Maps Week 10: Hash tables Week 11: Dynamic programming, Greedy algorithms
Assessment
- Final exam (80%)
- Past exams will be reviewed during revision classes.
- Two coursework assignments (20%, 10% each)
- Coursework will be built upon work developed during tutorial sessions.
Course Context
- First course in Algorithms and Data structures specifically for students with Java programming experience.
- Covers new concepts, including data structures, ADTs (abstract data types), algorithms, pseudocode, and complexity analysis.
- Prerequisites include basic knowledge of Java and calculus.
- Explains the use of data structures and algorithms is fundamental to other key courses such as Object-Oriented Software Engineering.
- Projects work will be undertaken in levels 3 or 4.
- Basic algorithms and data structures will be used in other key courses such as operating systems scheduling, networking routing protocols, and information retrieval.
Foundations
- Introduction to Algorithms
- Definition: A step-by-step procedure to solve a problem in a finite amount of time.
- Examples: Sorting, string matching, finding the greatest common divisor (Euclid's algorithm).
- Introduction to Data Structures
- Definition: A method for organizing data to facilitate access and modification.
- Examples: Arrays, linked lists, stack, binary trees.
Algorithm Analysis
- Correctness: An algorithm is correct if it produces the correct output for every input instance.
- Algorithm Efficiency: The running time of an algorithm (which is related to the input size) is important.
- Development of effective methods to manage time and space is vital.
- Algorithm analysis will be studied in later lessons. This analysis allows for the ability to predict the resources necessary to execute the algorithm.
Summary
- The course covers algorithms and data structures, with an emphasis practical application to real-world problems using Java. Key topics include algorithm analysis, data structures, and their implementation. Practical examples will be given throughout the content.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.