Teaching

SemesterCourses
Spring 2025
Fall 2024On Sabbatical - Visiting TU Dresden and CeTI
Spring 2024CPS 470 - Introduction to Operating Systems
ITC 265 – Basics of Data Communications & Computer Networks
Fall 2023CPS 470 - Introduction to Operating Systems
ITC 320 - Web App Development/Client-Side Scripting
ITC 630 - Cloud Computing
Summer 2023ITC 630 - Cloud Computing
Spring 2023CPS 470 - Introduction to Operating Systems
CPS 498 - Senior Design II
ITC 265 – Basics of Data Communications & Computer Networks
ITC 530 - Mobile Computing
Fall 2022ITC 530 - Mobile Computing (2 sections)
ITC 630 - Cloud Computing
Spring 2022CPS 470 - Introduction to Operating Systems (2 sections)
ITC 265 – Basics of Data Communications & Computer Networks
Fall 2021CPS 101 – A First Byte of Computer Science
CPS 470 - Introduction to Operating Systems
ITC 630 - Cloud Computing
Spring 2021CPS 296C – A First Byte of Computer Science
CPS 470 – Introduction to Operating Systems
CPS496 - Independent Study
Fall 2020CPS 181 – Introduction to Data Structures
ITC 530 – Mobile Computing
Spring 2020CPS 181 – Introduction to Data Structures
CPS 360 – Computer Design & Architecture
ITC 265 – Basics of Data Communications & Computer Networks
Fall 2019CPS 180 – Principles of Computer Programming
CPS 181 – Introduction to Data Structures (part of the NSF-funded PALS project)
CPS 396F – Mobile Application Development
Spring 2019CPS181 – Introduction to Data Structures (part of the NSF-funded PALS project)
Fall 2018CPS181 – Introduction to Data Structures (part of the NSF-funded PALS project)
Spring 2018CPS181 – Introduction to Data Structures
ITC265 – Basics of Data Communication and Computer Networks
ITC466 – System Administration and Automation
Fall 2017ITC265 – Basics of Data Communication and Computer Networks
CPS496A – Android Programming
Spring 2017ITC265 – Basics of Data Communication and Computer Networks
ITC530 – Mobile Computing
Fall 2016CPS180 – Principles of Computer Programming
ITC265 – Basics of Data Communication and Computer Networks
CPS596A – Android Programming
Spring 2016ITC530 – Mobile Computing
Fall 2015CPS180 – Principles of Computer Programming
ITC630 – Cloud Computing
Summer 2015ITC530 – Mobile Computing
Spring 2015CPS180 – Principles of Computer Programming
CPS396M – Mobile Computing: Android
Fall 2014CPS165 – Modern Website Design
ITC265 – Basics of Data Communication and Computer Networks
CPS180 – Principles of Computer Programming
Spring 2014CPS596M – Mobile Computing
ITC265 – Basics of Data Communication and Computer Networks
Fall 2013CPS396M – Mobile Computing: Android
ITC265 – Basics of Data Communication and Computer Networks
Spring 2013ITC265 – Basics of Data Communication and Computer Networks
Fall 2012CPS396M – Mobile Computing: Android
ITC265 – Basics of Data Communication and Computer Networks
Spring 2012CPS181 – Introduction to Data Structures
Fall 2011ITC282 – Introduction to Multimedia Design
Spring 2011CIS225 – Data Communication and Networks
CIS460 – Advanced Topics in Networking
Fall 2010CIS225 – Data Communication and Networks
CIS361 – Information and Network Security
CIS464 – Wireless Networking and Devices
Spring 2010CIS360 – Data Communication and Networks
CIS460 – Advanced Topics in Networking
CIS462 – Secure Server Administration
Fall 2009CIS360 – Data Communication and Networks
CIS361 – Information and Network Security
CIS464 – Wireless Networking and Devices
Spring 2009CIS346 – Wireless Networks and Devices
CIS360 – Data Communication and Networks
CIS462 – Secure Server Administration
Winterim 2009CIS346 – Wireless Networks and Devices
Fall 2008CIS330 – Computer and Network Architecture
CIS361 – Information and Network Security
CIS462 – Web Server Administration
Spring 2008CIS330 – Computer and Network Architecture
CIS360 – Data Communication and Networks
Winterim 2008CIS330 – Computer and Network Architecture

My classes are supported by DataCamp, the most intuitive learning platform for data science and analytics. Learn any time, anywhere and become an expert in R, Python, SQL, and more. DataCamp’s learn-by-doing methodology combines short expert videos and hands-on-the-keyboard exercises to help learners retain knowledge.