teaching

Materials for courses I have taught.

I have had the privilege of teaching a range of undergraduate courses across core and advanced areas of computer science.
My teaching emphasizes active learning, project-based exploration, and the development of strong problem-solving and software design skills.


Undergraduate Courses

STEM 140 – Reason and Abstraction: World of Computing

Semesters: Fall 2024, Fall 2026
An introduction to the fundamental ideas of computation, abstraction, and logic. Students explore problem-solving through algorithmic thinking and learn how computing principles connect to real-world applications.


CSCI 211 – Programming I (Python)

Semesters: Fall 2025 An introduction to programming and problem-solving using Python. Covers fundamental concepts such as data types, control structures, functions, and basic algorithms. Students gain hands-on experience through interactive coding exercises and projects.


CSCI 218 – Programming II (Java)

Semesters: Spring 2024, Spring 2025, Spring 2026
Covers object-oriented programming, data abstraction, inheritance, and interfaces using Java. Students gain hands-on experience with software design, testing, and debugging through practical assignments and projects.


CSCI 236 – Data Structures and Algorithms

Semesters: Spring 2024, Fall 2025
Focuses on essential data structures (lists, stacks, queues, trees, graphs) and algorithms for sorting, searching, and optimization. Emphasizes algorithmic efficiency, complexity analysis, and implementation in modern programming environments.


CSCI 226 – Computer Architecture

Semesters: Fall 2023, Fall 2026
Explores the organization and design of computer systems, from logic gates to CPU architecture. Topics include instruction sets, memory hierarchy, pipelining, and performance analysis.


CSCI 340 – Databases

Semesters: Fall 2023, Fall 2025
Introduces database design, relational models, SQL, normalization, and transactions. Students also explore database-driven application development and modern database systems.


CSCI 345 – Machine Learning

Semesters: Fall 2024
A hands-on introduction to the fundamentals of machine learning. Topics include supervised and unsupervised learning, model evaluation, and applications of ML algorithms using Python-based toolkits.


CSCI 295 – Full-Stack Web Development

Semesters: Spring 2025
Focuses on modern web development practices, including front-end and back-end integration, RESTful APIs, and database-driven web applications. Students work collaboratively to design, implement, and deploy full-stack projects.


CSCI 380 – Collaborative Research in Computer Science

Semesters: Fall 2024, Spring 2026
A guided, research-focused course where students work on open-ended problems in collaboration with faculty. Emphasizes research methodology, literature review, and technical communication.


CSCI 480 – Senior Capstone: Computer Science Seminar

Semesters: Spring 2024, Spring 2025, Spring 2026
The culminating experience for senior computer science majors. Students integrate knowledge from prior coursework to design, implement, and present a significant software or research project.


Teaching Philosophy

I strive to create an engaging and inclusive learning environment that encourages curiosity, critical thinking, and creativity.
My courses balance theoretical foundations with practical applications, preparing students to become thoughtful and innovative computer scientists.