Teaching
As a Computer Science Graduate Teaching Assistant at Iowa State University with over five years of teaching experience, I focus on creating a comprehensive, engaging, and challenging learning environment that meets the diverse needs of students. My teaching approach emphasizes connecting theory with real-world practice, helping students turn core computer science concepts into practical skills. I encourage hands-on learning through software development, user interface design, and database projects that build both technical skills and problem-solving abilities. By combining project-based tasks with personalized guidance, I aim to prepare students to face current challenges in the tech field with confidence and creativity.
In addition to classroom and lab, I also create online learning resources that break down complex concepts into simple, digestible formats. These include YouTube tutorials, blog articles, and written notes or mini-books that summarize difficult topics into clear, practical explanations and master difficult concepts at their own pace.
Spreadsheets and Databases
COMS 1130 β Spreadsheets and Databases

This foundational course focuses on using tools such as Microsoft Excel and Microsoft Access for effective data organization, analysis, and reporting. Students develop proficiency in applying formulas, creating pivot tables, designing queries, and building forms and visual analyses to support practical business and data-driven decision-making.
Software Development Practices
COMS 3090 β Software Development Practices

Fall 2022, Spring 2023, Spring 2024, Fall 2025
This course is a practical, hands-on program that focuses on modern software development standards. Core topics include Git, Agile methodologies, code reviews, unit testing, and continuous integration and deployment (CI/CD). Students collaborate on team-based projects that replicate real-world development workflows, with particular emphasis on collaboration, documentation, and iterative improvement. The course culminates in comprehensive Android application and game development, including design, implementation, testing, and deployment.
User Interface Design
COMS 3190 β User Interface Design

This course explores the principles of designing user-friendly and efficient interfaces. It integrates hardware and data-driven UI practices, incorporating Raspberry Pi for Internet of Things (IoT) applications and Node.js for front-end visualization and interactive design. Students learn to design, prototype, and evaluate interfaces with a focus on usability and user experience.
Object-Oriented Analysis and Design
COMS 3620 β Object-Oriented Analysis and Design

Fall 2020, Spring 2021, Fall 2021, Fall 2024
This course teaches the modeling and design of software systems using object-oriented principles. It emphasizes the use of UML diagrams, design patterns, and Java implementations to develop modular, maintainable, and scalable software solutions. Students gain experience moving from requirements to design to code in a structured, iterative way.
Database Management Systems
COMS 3630 β Database Management Systems

This course covers the fundamentals of database architecture, data modeling, and Structured Query Language (SQL). Students gain hands-on experience with relational database systems while exploring key concepts such as indexing, transactions, normalization, and comprehensive database design. Emphasis is placed on designing robust schemas and writing efficient queries for real-world applications.
Software Testing
COMS 4170 β Software Testing

This course focuses on the principles and practices of software verification and validation. Students learn to design and execute effective test cases, utilize debugging tools, and implement automation frameworks to ensure software quality, reliability, and maintainability.
Future Goals
I am dedicated to the continuous development of my teaching methods and curriculum design. My objectives include:
- Incorporating new AI and software development tools as part of student learning, helping them engage with modern development and analysis workflows.
- Creating interactive, experiential, and project-based learning environments that encourage students to be actively involved and learn by building.
- Becoming a resource to the broader computer science education community through curriculum innovation, teaching-focused research, and mentorship of other educators.
- Broadening studentsβ access to the computing field so they can confidently tackle real-world challenges using both their theoretical foundations and practical skills.
Email me if you want to collaborate or learn more about my teaching and research initiatives.