Subject Description
Computer Science

CSCI 455 | Principles of Database Systems

The management of data is one of the classical problems throughout the history of computing. This course centers around the fundamental concepts and theory that underpin the relational data model, which addresses numerous problems that plague data management, including data independence, consistency, information loss, and access performance. Course topics include the relational data model, database languages (e.g., SQL), relational database theory, database design (by decomposition), query execution, and considerations that affect system performance.

CSCI 440 | Capstone in Computer Science

The senior capstone course provides computer science majors the opportunity to integrate the knowledge that they have gained from across the curriculum. Students are encouraged to work in teams, and can pursue either an applied or theory project. Students choosing applied projects participate in the identification of a problem, develop a project proposal outlining an approach to the problem's solution, implement the proposed solution, and test or evaluate the result.

CSCI 361 | Algorithms and Data Structures

This is a course in advanced data structures, the algorithms needed to manipulate these data structures, proofs that the algorithms are correct, and a runtime analysis of the algorithms. Students study advanced data structures such as Red-Black Trees, 2-3 Trees, Heaps, and Graphs. Students also study algorithm design techniques including Greedy Algorithms, Divide and Conquer, Dynamic Programming, and Backtracking. They also learn about NP-Complete problems.

CSCI 335 | Optimization

This course is about how to find the best - or at least good - solutions to large problems frequently arising in business, industrial, or scientific settings. Students learn how to model these problems mathematically, algorithms for finding solutions to them, and the theory behind why the algorithms work. Topics include the simplex method, duality theory, sensitivity analysis, and network models. The focus is on linear models and models with combinatorial structure, but some nonlinear models are considered as well. Optimization software is used frequently.

CSCI 325 | Network Programming

Computer networks have become a fundamental part of our everyday lives, used for everything from social networking to research and commerce. This course introduces the concepts behind modern computer networks and their implementation. It covers the software and hardware architecture of the internet, networking protocols like TCP and IP, how services like Email and the Web work, approaches for reliable and secure communication, and the details of both wired and wireless transmission. Programming exercises reinforce key concepts from the course.

CSCI 315 | Computer Graphics

This course is an introduction to the process of generating images with a computer. The emphasis is on the design and use of graphical facilities for two- and three-dimensional graphics. Students study the mathematical theory underlying computer generated graphics, and will implement programs utilizing these techniques. The mathematical topics covered include rotations, translations, and perspective. The core pieces of the graphics pipeline used in current graphics hardware are studied.