Metadata
Title
Untitled
Category
courses
UUID
aebeb7fa38ec4c49858c1b04a8d05abe
Source URL
https://teaching.scss.tcd.ie/wp-json/wp/v2/module/766
Parent URL
https://teaching.scss.tcd.ie/module/CSU22011/
Crawl Time
2026-03-23T14:11:45+00:00
Rendered Raw Markdown
# Untitled

**Source**: https://teaching.scss.tcd.ie/wp-json/wp/v2/module/766
**Parent**: https://teaching.scss.tcd.ie/module/CSU22011/

{"id":766,"date":"2021-09-02T12:56:01","date\_gmt":"2021-09-02T11:56:01","guid":{"rendered":"https:\/\/teaching.scss.tcd.ie\/?post\_type=module&p=766"},"modified":"2026-03-20T11:24:18","modified\_gmt":"2026-03-20T11:24:18","slug":"csu22011","status":"publish","type":"module","link":"https:\/\/teaching.scss.tcd.ie\/module\/csu22011\/","title":{"rendered":"CSU22011 – Algorithms and Data Structures I"},"content":{"rendered":"\n

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Module Code<\/strong><\/td> CSU22011<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **Module Name<\/strong><\/td> Algorithms and Data Structures I <\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **ECTS Weighting [**[1]<\/strong><\/a><\/strong><\/td> 5 ECTS<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **Semester Taught<\/strong><\/td> Semester 1<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **Module Coordinator\/s  <\/strong><\/td> Vasileios Koutavas<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **Academic Year <\/strong><\/td> 2026-2027<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\nModule Learning Outcomes<\/h2>\n\n\n\n On successful completion of this module, students will be able to:<\/p>\n\n\n\n  \n1. Have gained significant knowledge on algorithms and data structures, and the mathematical theory and techniques to evaluate their efficiency and effectiveness;<\/li>\n\n\n\n- Have the ability to evaluate algorithms in terms of their running time and memory space requirements and classify those algorithms in the major complexity classes using appropriate performance models;<\/li>\n\n\n\n- Be able to efficiently implement the operations of the main data structures used in most programming;<\/li>\n\n\n\n- Have gained experience through experiments in implementing effective new and existing algorithms;<\/li>\n\n\n\n- Be able to identify the most suitable data structures and algorithms for each programming problem based on the parameters of the problem, the advantages and limitations of each data structure and algorithm, the resources available, the desired performance criteria etc.;<\/li>\n\n\n\n- Be able to design and implement robust, effective and well-structured Java programs using industry standards such as Abstract Data Types and the approaches of unit testing and test coverage.<\/li>\n<\/ol>\n\n\n\nModule Content<\/h2>\n\n\n\n Theory:<\/p>\n\n\n\n              \n- Asymptotic growth functions and analysis of source code to derive running time and space requirements;<\/li>\n\n\n\n- Amortised running time analysis of algorithms;<\/li>\n\n\n\n- Recursion vs iteration.<\/li>\n<\/ul>\n\n\n\n Algorithms and Data structures:<\/p>\n\n\n\n                    \n- Array and linked list implementations of stacks and queues;<\/li>\n\n\n\n- Doubly linked lists;<\/li>\n\n\n\n- Union-find;<\/li>\n\n\n\n- Binary trees, binary search trees, balanced search trees, B-trees;<\/li>\n\n\n\n- Hash tables;<\/li>\n\n\n\n- Special topics.<\/li>\n<\/ul>\n\n\n\n Programming:<\/p>\n\n\n\n                                \n- Java generics;<\/li>\n\n\n\n- Iterators;<\/li>\n\n\n\n- JUnit testing.<\/li>\n<\/ul>\n\n\n\nTeaching and Learning Methods<\/h2>\n\n\n\n 3 hours of lectures, 1 hour of laboratories per week. Individual coursework assignments. In-class quizzes and tests.<\/p>\n\n\n\nAssessment Details<\/h2>\n\n\n\n                                       |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |                                      | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |                                      | **Assessment Component<\/strong><\/td> **Brief Description<\/strong><\/td> **Learning Outcomes Addressed<\/strong><\/td> **% of Total<\/strong><\/td> **Week Set<\/strong><\/td> **Week Due<\/strong><\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | in-person Lab examination<\/td> 2 hour physical Lab Examination<\/td> L01 – L06<\/td> 75%<\/td> N\/A<\/td> N\/A<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | In-lab Test<\/td> 45min Test in the labs<\/td> L01 – L06<\/td> 10%<\/td> Week 8<\/td> Week 8<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Assignment 1<\/td> Introductory<\/td> L04 – L06<\/td> 3%<\/td> Week 3<\/td> Week 4<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Assignment 2<\/td> Linked Lists<\/td> L01 – L06<\/td> 6%<\/td> Week 5<\/td> Week 6<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Assignment 3<\/td> Binary Trees<\/td> L01 – L06<\/td> 6%<\/td> Week 9<\/td> Week 10<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n An additional 2% **bonus mark<\/strong> will be based on in-class tests\/attendance.<\/p>\n\n\n\nReassessment Details<\/h2>\n\n\n\n Examination 100%, 2 hour in-person examination.<\/p>\n\n\n\nContact Hours and Indicative Student Workload<\/h2>\n\n\n\n  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **Contact Hours (scheduled hours per student over full module), broken down by<\/strong>:<\/td> **33 hours<\/strong><\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Lecture<\/td> 22 hours<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Laboratory<\/td> 11 hours<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Tutorial or seminar<\/td> 0 hours<\/td><\/tr>|  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Other<\/td> 0 hours<\/td><\/tr>|  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | | **Independent study (outside scheduled contact hours), broken down by:<\/strong><\/td> **70 hours<\/strong><\/td><\/tr>|  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | | Preparation for classes and review of material (including preparation for examination, if applicable)<\/td> 40 hours<\/td><\/tr>|  |  |  |  | | --- | --- | --- | --- | | Completion of assessments (including examination, if applicable)<\/td> 30 hours<\/td><\/tr>|  |  | | --- | --- | | **Total Hours<\/strong><\/td> **103 hours<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\nRecommended Reading List<\/h2>\n\n\n\n \n- *Algorithms (4th Edition),<\/em> Robert Sedgewick and Kevin Wayne[,<\/a> Pearson Education, 2011, [http:\/\/algs4.cs.princeton.edu\/home\/<\/a> <\/li>\n<\/ul>\n\n\n\nModule Pre-requisites<\/h2>\n\n\n\n **Prerequisite modules:<\/strong> N\/A<\/p>\n\n\n\n **Other\/alternative non-module prerequisites:<\/strong> <\/p>\n\n\n\n The module assumes students have previous knowledge of standard programming in Java. This includes Java syntax including data types, commands, loops, conditionals and other common programming structures, and the Java Object-Oriented model including classes, fields, methods, inheritance and interfaces. Students with working knowledge of another programming language such as C\/C++ should be able to acquire the required knowledge in Java from online tutorials.<\/p>\n\n\n\nModule Co-requisites<\/h2>\n\n\n\n N\/A<\/p>\n\n\n\nModule Website<\/h2>\n\n\n\n [Blackboard<\/a><\/p>\n","protected":false},"excerpt":{"rendered":" (Semester 1, 5 ECTS) The topics of this module are: the theory and practice of algorithmic design; evaluation algorithm performance; and standard algorithms and data structures.<\/p>\n","protected":false},"author":15,"menu\_order":0,"template":"","meta":[],"module\_category":[86,11,23,88,73,78],"class\_list":["post-766","module","type-module","status-publish","hentry","module\_category-csl-year-2-core","module\_category-ics-year-2-core","module\_category-jhcs-year2-all","module\_category-msiss-year-2-core","module\_category-s1","module\_category-visiting"],"\_links":{"self":[{"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/module\/766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/module"}],"about":[{"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/types\/module"}],"author":[{"embeddable":true,"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/users\/15"}],"wp:attachment":[{"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/media?parent=766"}],"wp:term":[{"taxonomy":"module\_category","embeddable":true,"href":"https:\/\/teaching.scss.tcd.ie\/wp-json\/wp\/v2\/module\_category?post=766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}](https://teaching.scss.tcd.ie/wp-json/wp/v2/module/\"https:\/\/tcd.blackboard.com\/webapps\/login\/\")****](https://teaching.scss.tcd.ie/wp-json/wp/v2/module/\"http:\/\/algs4.cs.princeton.edu\/home\/\")](https://teaching.scss.tcd.ie/wp-json/wp/v2/module/\"http:\/\/algs4.cs.princeton.edu\/home\/\")*** |** | | | | |** |** | | | | | | | | |** |** |** | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |** |** |** |** |** |** | |** | |** | |** | |**](https://teaching.scss.tcd.ie/wp-json/wp/v2/module/\"https:\/\/teaching.scss.tcd.ie\/wp-admin\/post.php?post=805&action=edit#_ftn1\")** | |** | |** |