Teaching & Course Information

What do I teach when?

I generally teach some combination of CS1 (CSCI-1320), CS2 (CSCI-1321), and an upper division elective each year.

Recent Courses Taught

Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
CS1 YES NO YES NO YES NO YES NO YES NO NO NO YES NO YES NO YES NO NO NO YES NO YES YES YES
CS2 YES YES YES YES YES YES YES YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO NO NO
Graphics NO YES NO NO NO YES NO YES NO NO NO YES NO NO NO YES NO NO YES NO NO NO YES NO NO
GameDev NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES NO YES NO YES NO NO YES NO NO NO
AdvGameDev NO NO NO YES NO NO NO NO NO NO NO NO NO YES NO NO NO YES NO YES NO NO NO NO NO
CompBio NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO
Colloquium NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO
IntroProg NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES NO NO NO YES

NOTE: Other faculty also teach these courses. The above table just shows when I've taught these classes.

Course Descriptions & Information

CSCI-1320

Principles of Computer Science I

CSCI-1320

Example Syllabus

This course is a concept-oriented introduction to programming and algorithmic problem-solving principles. Topics include top-down design; searching and sorting strategies; recursion; computational complexity and analysis of algorithms; the limits of computation; binary arithmetic; aspects of computer organization; and computer solutions to problems in various application domains. Computer programming will be involved to create solutions to several laboratory exercises. Prerequisites: None.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
CS1 YES NO YES NO YES NO YES NO YES NO NO NO YES NO YES NO YES NO NO NO YES NO YES YES YES
CSCI-1321

Principles of Computer Science II

CSCI-1321

Example Syllabus

Focus on object-oriented programming and the development of software to solve larger problems that can benefit from this approach. Abstraction, polymorphism, multithreading, and networking. Program correctness and program verification, algorithm analysis, and computational complexity. User defined structures, data types. Abstract data types including stacks, queues, linked lists, trees, and heaps. Computer programming solutions to several laboratory exercises. Prerequisite: CSCI 1320 or consent of instructor.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
CS2 YES YES YES YES YES YES YES YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO NO NO
CSCI-3353

Introduction to Computer Graphics

CSCI-3353

Example Syllabus

Survey of display devices, display data structures, graphics input, 2D transformations, windowing, clipping, viewing, 3D transformations, perspective, depth, hidden line removal. Graphics programming techniques and several laboratory problems using available graphics devices. Prerequisites: MATH 1311, CSCI 2320.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
Graphics NO YES NO NO NO YES NO YES NO NO NO YES NO NO NO YES NO NO YES NO NO NO YES NO NO
CSCI-3312

Introduction to Game Development

CSCI-3312

Example Syllabus

An introduction to the various aspects of the computer game creation process including coding, game play, narrative development, and artwork. Students will explore the tools and methods of game design and will also work in groups to design and implement a two-dimensional, non-networked game. Prerequisite: CSCI 3310, CSCI 3321 is recommended.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
GameDev NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES NO YES NO YES NO NO YES NO NO NO
CSCI-4312

Advanced Game Development

CSCI-4312

Example Syllabus

A deeper exploration of the concepts presented in CSCI 3312 that provides a setting for students to work in groups on the design and implementation of a three-dimensional or networked game. Includes discussion of 3-D graphics options as well as networking options. Groups will be subdivided into coding, game play, and art subgroups and will work in a structure intended to model professional game studios. Prerequisite: CSCI 3312
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
AdvGameDev NO NO NO YES NO NO NO NO NO NO NO NO NO YES NO NO NO YES NO YES NO NO NO NO NO
CSCI-3395

Special Topics: Intro to Computational Biology

CSCI-3395

Example Syllabus

This special topics course will discuss the emerging fields of Computational Biology and Bioinformatics. We will focus on classic and modern algorithms useful for a wide range of data analyses throughout many biological areas. All topics will be covered from a computational perspective, however, we will also discuss biological topics in order to place the computational issues in their proper context. The topics covered will include sequence analysis, phylogenetics, quantitative genetics, gene expression analysis, clustering, biological networks, and pathway analysis. Prerequisite: CSCI 2320
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
CompBio NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO
CSCI-2094

Colloquium

CSCI-2094

[NOTE: This class is no longer taught.] -- Departmental Colloquium on research, professional issues, ethics, and other topics.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
Colloquium NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO
CSCI-1311

Introduction to Programming Logic

CSCI-1311

[NOTE: This class is no longer taught.] -- This course is an introduction to computer programming and problem solving. The course will cover the basic concepts of computer programming, including data types, control structures, functions, arrays, and file processing. The course will also cover the basic concepts of problem solving, including algorithm design, debugging, and testing. The course will use a high-level programming language to illustrate these concepts. Prerequisite: MATH 1314 or equivalent.
Semester F24 S24 F23 S23 F22 S22 F21 S21 F20 S20 F19 S19 F18 S18 F17 S17 F16 S16 F15 S15 F14 S14 F13 S13 F12
IntroProg NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES NO NO NO YES