Fall 2014

CMPSC 111:  Introduction to Computer Science I

Instructor:  Janyl Jumadinova

Lecture:  M,W,F(1) — 9:00 AM – 9:50 AM, Th(2) — 1:30 PM – 2:20 PM, Lab:  Th — 2:30 PM – 4:20 PM

An introduction to the principles of computer science with an emphasis on algorithmic problem solving and the realization of algorithms using a modern object-oriented programming language. Topics include algorithms, problem solving, programming, classes, primitive data types and objects, control structures, arrays and vectors, principles of object-oriented design and programming, and an introduction to graphics and graphical user interfaces. The course also includes an overview of the discipline of computer science and a study of the social implications of computer use. May serve as the laboratory course in the Natural Science Division’s distribution requirement. One laboratory per week. Prerequisite: Knowledge of elementary algebra.

CMPSC 111:  Introduction to Computer Science I

Instructor:  Gregory Kapfhammer

Lecture:  M,W,F(1) — 9:00 AM – 9:50 AM, Th(2) — 1:30 PM – 2:20 PM, Lab:  Th — 2:30 PM – 4:20 PM

An introduction to the principles of computer science with an emphasis on algorithmic problem solving and the realization of algorithms using a modern object-oriented programming language. Topics include algorithms, problem solving, programming, classes, primitive data types and objects, control structures, arrays and vectors, principles of object-oriented design and programming, and an introduction to graphics and graphical user interfaces. The course also includes an overview of the discipline of computer science and a study of the social implications of computer use. May serve as the laboratory course in the Natural Science Division’s distribution requirement. One laboratory per week. Prerequisite: Knowledge of elementary algebra.

CMPSC 210:  Principles of Computer Organization

Instructor:  John Wenskovitch

Lecture:  M,W,F — 11:00 AM – 11:50 AM, Lab: Th — 2:30 PM – 4:20 PM

An introduction to the basic organization and operation of computers including logical structure, hardware components, machine and assembly language, and computer system performance. Topics include internal representation of information, instruction set architecture, instruction types and addressing techniques, computer arithmetic, memory systems, design and operation of the control unit, input/output devices and interfaces, assembly language and translation techniques, and modern architectural enhancements such as pipelining and multiprocessors. Special emphasis is on systems programming and assignments in a particular assembly language. One laboratory per week. Prerequisite: Computer Science 112.

CMPSC 230:  Theory of Computation and Formal Languages

Instructor:  John Wenskovitch

Lecture:  T,Th — 9:30 AM – 10:45 AM

(also listed as Mathematics 310)

An introduction to the theories of finite-state machines, pushdown automata and Turing machines as well as the relation between automata and the formal languages they recognize.Students explore computational theory and its practical applications in lexical analysis and language parsing. Prerequisites: Computer Science 112 and Mathematics 205 or permission of instructor. Offered in alternate years.

CMPSC 380: Principles of Database Systems

Instructor: Gregory Kapfhammer

Lecture: T,Th — 11:00 AM – 12:15 PM, Lab: W — 2:30 PM – 4:20 PM

A study of the design and implementation issues in database management systems. Topics include data models, logical/physical database design, data access/search techniques, normalization theory, mappings from logical to physical structures, storage, and utilization. Additional topics include database reorganization, migration, database integrity, consistency, privacy and security, distributed database systems, architecture of knowledge-based systems, and intelligent query interfaces. One laboratory per week. Prerequisite: Computer Science 112. Offered in alternate years.

CMPSC 420: Introduction to Compiler Design

Instructor:  Janyl Jumadinova

Lecture:  M,W,F — 1:30 PM – 2:20 PM, Lab:  M — 2:30 PM – 4:20 PM

An introduction to the basic concepts of compiler design and implementation from lexical, syntactic, and semantic analysis to target code generation. Topics are presented from an implementation point of view. The semester project includes construction of a compiler for a small language using lexing and compiler-compiler languages. One laboratory per week. Prerequisites: Computer Science 220 and 230 or permission of the instructor. Offered in alternate years.