Applied Algorithms

We will look at recent advances in the design and analysis of data structures and algorithms, with an emphasis on real-world applications.  Topics to be covered include approximation algorithms and heuristics for NP-hard problems; combinatorial optimization; new analysis techniques; and methods of algorithm engineering and experimental analysis of algorithms.  The specific problem domains to be studied will vary from year to year, to reflect the state of the art in algorithm research.  Students will read and present research papers and carry out small research projects to eva

Computer Graphics

This course will explore the algorithms used to create “realistic” three-dimensional computer images.  Major topics will include object representations (polygons, curved surfaces, functional models), rendering algorithms (perspective transformations, hidden-surface removal, reflectance and illumination, shadows, texturing), and implementation techniques (scan conversion, ray tracing, radiosity).  Students will create images using Pixar's Renderman.

Data Struct & Algorithms II

This course continues the exploration of data structures and algorithms that is begun in COSC 201. Topics include balanced search trees, amortized algorithms, graph data structures and algorithms, greedy algorithms, dynamic programming algorithms, NP completeness, and case studies in algorithm design.


Requisite: COSC 112 and 201. Fall semester.  Professor L. McGeoch.

Computer Systems I

This course will provide an introduction to computer systems, stressing how computers work. Beginning with Boolean logic and the design of combinational and sequential circuits, the course will discuss the design of computer hardware components, microprocessing and the interpretation of machine instructions, assembly languages, and basic machine architecture. The course will also introduce operating systems topics, basic memory management, and topics in network communication.

Intro Comp Science II

A continuation of COSC 111. This course will emphasize more complicated problems and their algorithmic solutions. The object-oriented programming paradigm will be discussed in detail, including data abstraction, inheritance and polymorphism. Other topics will include linked lists and trees and the use of finite-state machines in algorithm design. A laboratory section will meet once a week to give students practice with programming constructs. Two class hours and one one-hour laboratory per week.

Intro Computer Science I

This course introduces ideas and techniques that are fundamental to computer science. The course emphasizes procedural abstraction, algorithmic methods, and structured design techniques. Students will gain a working knowledge of a block-structured programming language and will use the language to solve a variety of problems illustrating ideas in computer science. A selection of other elementary topics will be presented, for example: the historical development of computers, comparison and evaluation of programming languages, and artificial intelligence.

Intro Computer Science I

This course introduces ideas and techniques that are fundamental to computer science. The course emphasizes procedural abstraction, algorithmic methods, and structured design techniques. Students will gain a working knowledge of a block-structured programming language and will use the language to solve a variety of problems illustrating ideas in computer science. A selection of other elementary topics will be presented, for example: the historical development of computers, comparison and evaluation of programming languages, and artificial intelligence.

Intro Computer Science I

This course introduces ideas and techniques that are fundamental to computer science. The course emphasizes procedural abstraction, algorithmic methods, and structured design techniques. Students will gain a working knowledge of a block-structured programming language and will use the language to solve a variety of problems illustrating ideas in computer science. A selection of other elementary topics will be presented, for example: the historical development of computers, comparison and evaluation of programming languages, and artificial intelligence.

Subscribe to