Teaching

Fall 24, Spring 25, Fall 25

Concepts of Programming Languages
Primary Instructor (one section)
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course will cover fundamental concepts of the majority of the thousands of programming languages: techniques for syntax and semantic analysis of programming languages and the major constructs and concepts of procedure, functional and logic languages. It aims to provide not only a unified view of (many) programming languages, but also the foundation which makes it easier for students to grasp/evaluate new languages and enables better programming (modeling) skills.

[Syllabus]

Fall 2025

Introduction to Engineering Design (2 sections)
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course will introduce the fundamentals of engineering design process, DevSecOps and provide the foundations of integration with software development and information technology operations, provide foundational knowledge of application and web development through hands-on projects and a basic understanding of tools for application and web development. It also provide basic knowledge of Business Model Canvas and Lean LaunchPad methodologies.

[Syllabus]

Summer 1 2025

Introduction to Large Language Models
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course covers the fundamentals of large language models (LLMs), explores their core architectures and building blocks such as tokenization, embeddings, and attention mechanisms. It also provides the tools and techniques to understand and build LLMs from scratch and how to deploy LLM-based applications.

[Syllabus]
Introduction to AI Agents
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course covers the fundamental concepts of AI Agents in theory, design, and practice. It provides essential tools and libraries required to understand, design, and build AI agents and introduces various types of AI agents, such as simple reflex agents, model-based agents, goal-based agents, utility-based agents, and learning agents, highlight their differences, functions, and appropriate use cases. It discusses how to develop complex agentic workflows using Python frameworks, and provide best practices for creating advanced agents that leverage Large Language Models (LLMs) to reason, interact with environments, and achieve specific goals. This course prepares students to grasp more advanced topics, such as multi-agent and hierarchical multi-agent systems, build practical agentic AI applications, and thoughtfully consider the ethical implications of AI agents.

[Syllabus]

Spring 2025

Software Engineering
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course will cover fundamental concepts of human-computer interaction (HCI), history and importance of HCI including theories of HCI design, modeling of computer users and interfaces. This course aims to provide an overview of empirical techniques for analyzing systems and interfaces, interface design, and styles of interaction. This course will also cover how to design, prototype, and evaluate prototypes and provide hands-on experience on building interactive user interface for various real-world applications. This course requires extensive computer use, and the setting for this course is mobile/web applications.

[Syllabus]
Pattern Recognition
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course will cover fundamental concepts of pattern recognition, discuss how to implement machine learning and deep learning techniques to solve real-world tasks. It will also discuss different evaluation techniques to improve model performance.

[Syllabus]

Fall 2024

Human Computer Interaction
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course will cover fundamental concepts of human-computer interaction (HCI), history and importance of HCI including theories of HCI design, modeling of computer users and interfaces. This course aims to provide an overview of empirical techniques for analyzing systems and interfaces, interface design, and styles of interaction. This course will also cover how to design, prototype, and evaluate prototypes and provide hands-on experience on building interactive user interface for various real-world applications. This course requires extensive computer use, and the setting for this course is mobile/web applications.

[Syllabus]
Introduction to Computer Graphics
Primary Instructor
Texas Tech University, Lubbock, Texas, United States

Course Objective: This course covers fundamental concepts in computer graphics and provides hands-on coding experience for manipulating and displaying objects in both two and three dimensions. The main objective of this course is to provide solid understanding of key algorithmic techniques and mathematical foundations required for manipulating and displaying objects. The emphasis is on core principles of computational techniques in computer graphics and not solely on specific software tools.

[Syllabus]