Skip to content

Latest commit

 

History

History

cm-1035-algorithms-and-data-structures-i

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Go back to the main page

Table of contents


Algorithms and Data Structures I

This module will help you to develop your analytical and problem-solving skills. It will encourage you to think about how to use computers to solve problems. You'll develop skills in thinking algorithmically and learn the central concepts of algorithms and data structures. You will learn about linear data structures such as arrays, vectors and lists and a unifying framework for considering such data structures as collections. You'll study how algorithms can be expressed as flowcharts and pseudocode and how to convert these into programs. You'll learn specific algorithms used for sorting and searching, and how to express repetition as iteration and recursion. You will learn a simple model for execution of computation, and how to describe computational problems and their solutions. The model will allow you to compare algorithms regarding their correctness and regarding their efficiency.

Professor(s)

  • Dr. Matty Hoban

Topics covered

  • Introduction to algorithms, flowcharts and pseudocode
  • Computations using flowcharts and pseudocode
  • Pairs, vectors and dynamic arrays
  • Basic searching
  • Linked lists
  • Basic sorting
  • Advanced searching and introduction to complexity
  • Recursive algorithms
  • Advanced sorting
  • Linear collections

Assessment

One two hour unseen written examination and coursework (Type I)

Module specification

Past exams

See past exams here.

Syllabus

Primary programming language

JavaScript

Resources

Complementary learning

Visualizations
Algorithms
mergeSort algorithm
quickSort algorithm
quickSort & mergeSort algorithms MIT
Computational complexity & P vs NP

Essential reading

"Specific essential readings for this course will be taken from the following text book:

  • Cormen, T.H., C.E. Leierson, R.L. Rivest and C. Stein Introduction to Algorithms. (Cambridge, MA: MIT Press, 2009) 3rd edition.

The specific pages for the reading activities will be given in the platform, and there is no need to read beyond to recommended pages.

In addition to the text book, there are additional reading activities written by the course author, some of which involve coding exercises.

There will also be discussion prompts asking you to do some independent research using online sources."

Examples of past and current written exams

Kinks to be aware of

❤️ Notes

On REPL

Solutions to the textbook Introduction to Algorithms