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.
20
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: