Skip to main content
nounstudy
CIT341

Data Structures

  • Sciences
  • 300 level
  • 3 credit units
  • 221 pages
  • 31 units

This course introduces foundational data structures and algorithm techniques. It covers basic operations on stacks, lists, and queues, along with concepts of trees, hashing, and binary search trees. Students will learn object-oriented programming principles and develop Java programs for simple applications. The course also explores algorithm design techniques like greedy algorithms, divide-and-conquer, and dynamic programming, as well as internal and external sorting methods.

About this course

Difficulty
Intermediate
Study hours
45 hours
Maths
Intermediate
Content
Theoretical, practical, problem solving
Practical work
Yes
Before you start
  • Basic programming knowledge
How it is assessed
  • Assignments
  • Tutor marked assessments
  • Final examination

One paragraph, so you can see how it reads

CIT341 · UNIT 1: FUNDAMENTALS

This unit introduces some basic concepts that the student needs to be familiar with before attempting to develop any software. It describes data type and data structures, explaining the operations that may be performed on them. The unit introduces you to the fundamental notions of data structures, thus guiding you through and facilitating your understanding of the subsequent units.

What you should be able to do

  1. Describe basic operations on stacks, lists, and queues.
  2. Explain trees, hashing, and binary search trees.
  3. Identify object-oriented programming concepts.
  4. Develop Java programs for simple applications.
  5. Discuss basic data types: lists, stacks, and queues.
  6. Describe structures and algorithms for external storage.
  7. Identify directed and undirected graphs.
  8. Discuss sorting: internal and external sort.
  9. Describe the efficiency of algorithms, recursion, and recursive programs.
  10. Discuss algorithm design techniques.

What it prepares you for

Careers
  • Software Developer
  • Data Analyst
  • Algorithm Designer
  • Database Administrator
  • Systems Analyst
Where it is applied
  • Software Development
  • Data Science
  • Database Management
  • Operating Systems
  • Network Design
Tools
  • Java Development Kit (JDK)
  • Integrated Development Environment (IDE)

Where it gets hard

The units students slow down on, and what makes each one heavy.

  • Module 2: Hashing and Trees

    Unit 2: Trees

    Requires understanding of tree structures and traversal methods, which are fundamental to many advanced data structures and algorithms.

  • Module 2: Hashing and Trees

    Unit 3: Search Trees

    AVL tree implementation involves complex rotations and balancing operations that require a strong grasp of tree properties and pointer manipulation.

A suggested way through it

Suggested

13 weeks, about 45 hours in total. Yours will differ.

  1. Week 1Module 1: Foundational Data Structures
    • Unit 1: Fundamentals · 3 hours

      Understand data types, abstract data types, and data structures.. Classify data types and give examples.. Explain the relevance of data structures in programming..

  2. Week 2Module 1: Foundational Data Structures
    • Unit 2: Arrays · 3 hours

      Describe arrays, their dimensionality, and declaration.. Explain the terms element and array name.. Express a two-dimensional array linearly.. Distinguish between static and dynamic arrays.. Explain the importance of arrays in computer applications..

  3. Week 3Module 1: Foundational Data Structures
    • Unit 3: The List Data Structure · 3 hours

      Describe a List.. Identify the elements of a List.. Explain the operations and implementations of Lists..

  4. Week 4Module 1: Foundational Data Structures
    • Unit 4: The Stack Data Structure · 3 hours

      Describe the stack data structure.. Identify two basic modes of implementing a stack.. Outline the applications of stacks in computing.. Explain the two methods of storing a stack..

  5. Week 5Module 1: Foundational Data Structures
    • Unit 5: The Queue Data Structure · 3 hours

      Describe a queue data structure.. Give at least three applications of queues.. Explain the operations on a queue.. Describe two basic modes of queue storage..

  6. Week 6Module 2: Hashing and Trees
    • Unit 1: Hashing · 3 hours

      Explain the basic idea of hashing.. Describe hash keys and functions.. Give the basic implementation of hash functions.. Define a hash table.. Explain the applications of hash tables..

  7. Week 7Module 2: Hashing and Trees
    • Unit 2: Trees · 3 hours

      Give a basic definition of a tree.. Describe binary trees.. Explain tree traversals.. Evaluate arithmetic expressions by means of tree traversals..

  8. Week 8Module 2: Hashing and Trees
    • Unit 3: Search Trees · 3 hours

      Explain what a search tree is.. Describe a successful search.. Describe an unsuccessful search.. Explain the implementation of AVL search trees..

  9. Week 9Module 2: Hashing and Trees
    • Unit 4: Garbage Collection · 3 hours

      Describe garbage.. Explain garbage collection.. Describe the mark-and-sweep garbage collection.. Explain the fragmentation problem..

  10. Week 10Module 2: Hashing and Trees
    • Unit 5: Memory Allocation · 3 hours

      Explain the concept of memory allocation.. Discuss the first fit allocation technique.. Explain the best fit allocation technique.. Describe the buddy system..

  11. Week 11Module 3: Introduction to Java Programming
    • Unit 1: Object-Oriented Programming Concepts · 3 hours

      Describe an object.. Explain what a class is.. Define an Inheritance.. Explain the term 'object-oriented programming'..

  12. Week 12Module 3: Introduction to Java Programming
    • Unit 2: Variables · 3 hours

      Define a variable.. Describe types of java programming variables.. Explain the naming conventions of variables..

    • Unit 3: Operators · 3 hours

      Explain the term 'operators'.. Describe simple assignment operators.. Explain arithmetic operators.. Discuss unary operators.. Explain equality and relational operators.. Discuss the conditional operators..

  13. Week 13Module 3: Introduction to Java Programming
    • Unit 4: Expressions, Statements and Blocks · 3 hours

      Define an expression.. Describe statements, giving typical examples of expression statements.. Discuss the concept of blocks..

    • Unit 5: Control Flow Statements · 3 hours

      Describe control flow statements.. Gain knowledge of the decision-making statements.. Explain the looping statements..

Preparing for the exam

What to do
  • Create concept maps linking Module 1-2 data structures and operations.
  • Practice implementing list, stack, and queue operations in Java (Module 1).
  • Review tree traversal algorithms (Unit 2, Module 2) and practice coding them.
  • Focus on Java syntax and object-oriented concepts (Modules 3-4).
  • Solve practice problems for each algorithm design technique (Module 5).
  • Understand sorting algorithm complexities and stability (Module 6).
  • Review all TMAs and their solutions.

Questions students ask about this course

What is CIT341 about?

This course introduces foundational data structures and algorithm techniques. It covers basic operations on stacks, lists, and queues, along with concepts of trees, hashing, and binary search trees. Students will learn object-oriented programming principles and develop Java programs for simple applications. The course also explores algorithm design techniques like greedy algorithms, divide-and-conquer, and dynamic programming, as well as internal and external sorting methods.

How many units does CIT341 have?

CIT341, Data Structures, has 31 units across 6 modules, over 221 pages of course material. You can read it one unit at a time.

How many credit units is CIT341?

CIT341 carries 3 credit units, at 300 level in Sciences.

Is CIT341 hard?

CIT341 is rated intermediate level, with intermediate mathematical content. It is mostly theoretical, practical and problem solving work, and it has a practical component.

How long does CIT341 take to study?

About 45 hours of study, spread across its 31 units.

How is CIT341 assessed?

CIT341 is assessed by assignments, tutor marked assessments and final examination.

What do I need before starting CIT341?

Basic programming knowledge

What can I do with CIT341?

Software Developer, Data Analyst, Algorithm Designer, Database Administrator and Systems Analyst.

More courses in Sciences

CIT332

Survey of Programming Languages

4 credit units

Open CIT332
PHY308

Electronics I

2 credit units

Open PHY308
CHM305

Organic Chemistry Iii

3 credit units

Open CHM305