Introduction to Data Structures and Algorithms module (CS12002)

Learn to design algorithms and study common data structures. Use recursion and create multithreaded applications in Java.

On this page
Credits

20

Module code

CS12002

This introductory module is designed to teach you the fundamental concepts of the Java programming language, algorithm design and data structures.

You will study the basics of Java syntax, its data types and control structures, and learn to develop using object-oriented programming (OOP) principles. With this knowledge, you will be able to write your own programs in Java.

You will explore iterative and recursive algorithm design using Java, and implement commonly used data structures.

These skills are essential to develop efficient and effective solutions to various problems.

What you will learn

In this module, you will:

  • explore the Java programming language and learn about its syntax, data types, and control structures
  • study commonly used data structures, such as linked lists, stacks, queues, sets, and binary trees
  • implement data structures from scratch
  • learn about algorithm design and implementation, including recursive programming techniques
  • explore multithreaded programming and Graphical User Interfaces (GUIs)

By the end of this module, you will be able to:

  • define and implement commonly used data structures in programming
  • compare and contrast data structures
  • compose efficient solutions to problems through appropriate data structure designs
  • design and apply algorithms
  • understand the difference between iterative and recursive algorithms, and use them appropriately
  • develop multithreaded applications and GUIs

You will also develop your Java skills and gain valuable experience in programming and software development.

Assignments / assessment

Stacks 15%

  • Given in week 2
  • Due in week 3
  • 10 hours effort expected

Sets 15%

  • Given in week 4
  • Due in week 5
  • 10 hours effort expected

Binary trees 15%

  • Given in week 6
  • Due in week 7
  • 10 hours effort expected

Group project 25%

  • Given in week 9
  • Due in week 11
  • 38 hours effort expected

Exam 30%

  • During exam period
  • Exam lasts 1 hour

Teaching methods / timetable

You will learn by taking a hands-on approach. This will involve taking part in tutorials and practical sessions.

Learning material is provided through videos, review notes, examples, and tutorial questions, including software development presentations and demonstrations.

Week

Topics covered

1

Linked lists

2

Stacks

3

Queues

4

Sets

5

Recursion

6

Binary trees

7

Java GUIs

8

Project work

9

Project work

10

Project work

11

Project presentations / revision

12

Revision

Courses

This module is available on following courses: