Introduction to Algorithms

The design and analysis of efficient algorithms for important computational problems. Emphasis on the relationships between algorithms and data structures and on measures of algorithmic efficiency. Sorting (heapsort, mergesort, quicksort), searching, graph algorithms. Experimental analysis of algorithms also emphasized. Use of computer required.

Introduction To Computation

Lecture, discussion. Basic concepts of discrete mathematics useful to computer science: set theory, strings and formal languages, propositional and predicate calculus, relations and functions, basic number theory. Induction and recursion: interplay of inductive definition, inductive proof, and recursive algorithms. Graphs, trees, and search. Finite-state machines, regular languages, nondeterministic finite automata, Kleene's Theorem. Problem sets, 2 midterm exams, timed final.

Introduction To Computation

Lecture, discussion. Basic concepts of discrete mathematics useful to computer science: set theory, strings and formal languages, propositional and predicate calculus, relations and functions, basic number theory. Induction and recursion: interplay of inductive definition, inductive proof, and recursive algorithms. Graphs, trees, and search. Finite-state machines, regular languages, nondeterministic finite automata, Kleene's Theorem. Problem sets, 2 midterm exams, timed final.

Programming w/Data Structures

This course introduces and develops methods for designing and implementing abstract data types using the Java programming language. The main focus is on how to build and encapsulate data objects and their associated operations. Specific topics include linked structures, recursive structures and algorithms, binary trees, balanced trees, and hash tables. These topics are fundamental to programming and are essential to other courses in computer science. The course involves weekly programming assignments, in-class quizzes, discussion section exercises, and multiple exams.

Intro Problem Solving W/Comp

An introductory course in problem solving, using the programming language Java. Focuses on the fundamental concepts of problem solving and on computer implementation. Intended for computer science majors or those applying for the major. Satisfactory completion is a prerequisite for all higher-level computer science courses. Use of a laptop computer required. Prerequisite: high school algebra and basic math skills (R1). (Gen.Ed. R2)

Computer Literacy

How computers can help solve problems efficiently and effectively. Broad introduction to hardware and software aspects of microcomputers. Four application areas: word processing, spreadsheets, databases, and telecommunications (access to the Internet). Students more interested in programming should take COMPSCI 119 or COMPSCI 121. Prerequisites: reasonable high school math skills. Typing ability an important asset. (Gen.Ed. R2)

Legends of King Arthur

The legends of King Arthur have been favorite stories for more than a thousand years. But those legends have changed dramatically from one retelling to the next, and they continue to change as modern authors and filmmakers re-imagine them. In this course, we will explore the shifting shape of the Arthurian cycle from the early Middle Ages to the twenty-first century, considering how Arthur has infiltrated the popular imagination. (Gen. Ed. AL)
Subscribe to