Back to professors

Computer Science

John Greiner

Assistant Teaching Professor of Computer Science

Public Rice profile source

Average rating

4.2

14 temporary mock ratings

Difficulty

3.2

course-linked average

Courses

2

in seeded sections

Public profile

Courses taught

COMP 621

Systems Software

Modern computer systems are designed and implemented in a layered fashion, wherein each layer builds upon those beneath it, providing abstractions for processing, memory, and I/O that are progressively more abstracted from the hardware and easier to use than those of the underlying layers. While this layered architecture has made building systems easier, it has also made understanding their behavior and performance more difficult. Every layer from the managed run-time environments used by modern programming languages to the hypervisor play a role in processor scheduling, memory management, and I/O, making it oftentimes difficult to pinpoint which layer of the system is interacting poorly with a program. This class will teach students about the fundamental characteristics of the abstractions for processing, memory, and I/O at each layer of a modern computer system, so that they might understand the functionality provided by each layer, and instruct them on the use of modern debugging, profiling, and tracing tools, so that they are equipped to characterize the behavior and performance of their programs. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.

Computer ScienceNone3 credits
4.29.5hGreiner, John

COMP 630

Databases

This course is an introduction to relational and other (NoSQL) database systems, SQL programming, and database design. This course will teach students how to understand trade-offs in database design, to create well-designed databases, and to develop proficiency in effectively managing data in a database. The course is focused on developing skills as a database designer and power-user. It also includes discussions of database implementation details to enable students to understand underlying system functionality and how that impacts decisions a database designer makes. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.

Computer ScienceNone3 credits
4.210.3hGreiner, John

Recent comments