Data Structures (Teaching Assistant)

Undergraduate course, Xiamen University, 2024

Course Overview

As a Teaching Assistant for the Data Structures course, I support undergraduate students in mastering fundamental data structures and algorithms essential for computer science. This course serves as a cornerstone for advanced computer science topics and software development.

Course Topics

  • Linear Data Structures
    • Arrays and Dynamic Arrays
    • Linked Lists (Singly, Doubly, Circular)
    • Stacks and Queues
    • Deques and Priority Queues
  • Non-linear Data Structures
    • Binary Trees and Binary Search Trees
    • AVL Trees and Red-Black Trees
    • B-Trees and B+ Trees
    • Graphs (Directed and Undirected)
  • Advanced Topics
    • Hash Tables and Hash Functions
    • Heaps and Heap Operations
    • Graph Algorithms (BFS, DFS, Dijkstra’s, MST)
    • String Algorithms and Tries

Responsibilities

  • Lab Sessions: Conduct weekly 2-hour lab sessions helping students implement data structures in C++
  • Office Hours: Provide individual tutoring and code review sessions twice weekly
  • Assignment Grading: Evaluate programming assignments and provide detailed feedback
  • Exam Preparation: Lead review sessions before midterm and final examinations
  • Student Mentoring: Guide students through complex algorithmic thinking and problem-solving approaches

Programming Languages & Tools

  • Primary Language: C++
  • Development Environment: Code::Blocks, Visual Studio Code
  • Version Control: Git and GitHub for assignment submissions
  • Testing Framework: Custom automated testing scripts for assignment validation

Learning Outcomes

Students completing this course will be able to:

  1. Analyze time and space complexity of algorithms using Big O notation
  2. Implement and manipulate fundamental data structures efficiently
  3. Choose appropriate data structures for specific problem domains
  4. Design and implement recursive and iterative algorithms
  5. Debug and optimize code for performance and memory usage

Student Feedback

“The TA sessions were incredibly helpful in understanding the practical implementation of trees and graphs. The step-by-step debugging approach really made complex concepts clear.” - Anonymous Student Evaluation

Resources

  • Textbook: “Data Structures and Algorithm Analysis in C++” by Mark A. Weiss
  • Online Platform: Custom LeetCode-style problem sets for practice
  • Lab Materials: Comprehensive starter code and test cases for all assignments

This teaching experience has strengthened my ability to explain complex technical concepts clearly and mentor students in developing strong programming fundamentals.