Teaching

CSCI 4450/8456-850 Artificial Intelligence (Spring 2026)

Undergraduate/Graduate course, UNO, 2026

Artificial intelligence (AI) is rapidly advancing due to breakthroughs in data accessibility, computing power, and algorithmic sophistication. This has contributed to a surge in AI applications across various domains, including search, machine learning, natural language processing, robotics, and computer vision. This course provides a foundational understanding of AI, exploring core concepts in problem-solving, heuristic search, knowledge representation, deduction, planning, and learning. Through hands-on programming assignments, students will develop autonomous agents capable of making informed decisions in complex environments. Upon course completion, students will be able to develop intelligent systems capable of autonomous decision-making and learning in fully informed, partially observable and adversarial settings. They will also master constraint programming techniques to address complex optimization challenges. This coursework provides a strong foundation for pursuing advanced AI research and practical applications. The main learning objectives of the course are to identify problems suitable for artificial intelligence techniques and apply basic AI techniques and evaluate the suitability of more advanced methods and contribute to the design of systems that exhibit intelligent behavior and learn from experience.

CSCI 8530-001 Advanced Operating Systems (Spring 2026)

Graduate course, UNO, 2026

The course introduces the design and structure of computer operating systems and also considers advanced operating system topics and exposes students to recent developments in operating systems research. The course involves concepts, principles, functionality, trade-offs, and implementation of systems that support concurrent processing. The individual components of an operating system (Xinu) will be examined in detail at the source code level, and students will be expected to complete various assignments on real hardware (Intel Galileo board or Raspberry Pi 2B (or 3B) or BeagleBone Black. Others are NOT recommended.) or Oracle VM VirtualBox (if you cannot get this real hardware). At a minimum, you will need a board, a memory card, a USB-micro cable, and a USB-serial adapter. Some of these assignments will involve simple “follow the steps’’ activities, while others will require the design of new or modified system components and application programs. Lectures will closely follow the expected readings which are indicated in the class schedule on the class web pages.

CSCI4500 Operating Systems (Fall 2025)

Undergraduate course, UNO, 2025

An operating system is an abstraction of computer system hardware; it manages the sharing of various hardware and software resources among the users of the computer system. The parallel history of hardware and operating system development introduces many key concepts including, for example, processor modes, direct memory access (DMA), device controllers, and virtual memory. Basic approaches to kernel organization and implementation are considered. This is often the first course in which students encounter concurrency and concurrent programs. Additional topic areas include system performance evaluation (particularly relating to processor and memory management), security, virtualization, resource allocation and scheduling, and file systems.