110 Introduction to Computers and Computing
Liberal arts oriented overview of computer science topics including six weeks of programming in BASIC, together with aspects of computer architecture, microcomputer applications (spreadsheets, databases, etc.), and societal issues. Weekly one hour session in microcomputer lab.

112 Introduction to Structured Programming
Fall, Spring
Methodology of structured programming via the Pascal language. Procedures and functions, types, arrays, and records applied to development of techniques and algorithms important in computer science. Emphasis on problem solving and structured, top-down refinement. Prerequisite: strong high school mathematics background or significant previous programming experience.

115 Introduction to Administrative Programming and Applications
Development of the programming language COBOL along with a variety of applications to common business programming situations. Coverage includes sequential and random access files. Prerequisite: Computer Science 112.

212 Advanced Computer Programming
Spring
Further exposure to the structured programming techniques of Pascal. Topics include sequential and random files, searching and sorting, static and dynamic storage allocations, recursion and elementary linear data structures such as stacks, queues, and linked lists. Prerequisite: Computer Science 112.

213 Introduction to Computer Systems
Fall
Computer structure and machine language, specific assembly language development, addressing techniques, input/output techniques, construction of an assembler. Prerequisite: Computer Science 112.

214 Principles of Computer Logic and Architecture
Spring
Basic logic, digital electronics, microcomputer architecture and interfacing, with hands-on laboratory activity. Prerequisite: CS 112 and 213.

250 Procedural and Object Oriented Programming
Fall
The procedural paradigm has been the standard for programming languages. In the paradigm, the programming task is subdivided into seperate tasks and the algorithm for each subtask is expressed explicitly in a procedure or function. Object oriented programming is the newest paradigm in which a program is viewed as a collection of objects that interact with one another by sending messages to each another. The object oriented paradigm is especially powerful in graphical situations and is the basis of the Macintosh and PC Windows operating systems. This course will rapidly develop the procedural language C and then develop the object oriented paradigm by extending to the language C++. Prereq: Computer Science 212.

260 Symbolic Logic
An introduction to propositional and predicate logic. Topics include formal semantics, translation, natural deduction, quantification theory and completeness. The relevance of logic to computer theory and artificial intelligence will be stressed. (Cross-listed as Philosophy 265.)

314 Numerical Analysis
Spring
Linear and polynomial interpolation, finite differences, matrix methods. Solution of equations and systems of equations. Numberical differentiation, integrations, and solutions of differential equations. Algorithms and computer applications. Prerequisite: Mathematics 111, 231, and Computer Science 112. (Cross-listed as Mathematics 314.)

317 Data Structures and Algorithm analysis
Fall
In-depth study of abstract data structures (linked lists, trees, graphs) and analysis of algorithms. Applications programmed individually and in groups using Pascal or C++. Prerequisite: Computer Science 212, Mathematics 230.

318 Program Language Organization
Basic computer linguistics, BNF grammars, types, static and dynamic storage, control structures, introduction to compiling, and interpreting. Prerequisite: Computer Science 212.

325 Artificial Intelligence
An introduction to such topics as tree and graph searches, minimax methods and alphabeta pruning, heuristics, backtracking, natural language processing and computer vision and robotics. Prerequisite: Computer Science 212.

336 Operating Systems and Systems Programming
A study of assemblers, linkers, loaders, and other systems programs. An introduction to memory, device, and file management in batch, multiprocessing, and time shared operating systems. Prerequisite: Computer Science 212 and 213.

360 Mathematical Modeling and Computer Simulation
Introduction to the process and techniques of modeling actual situations using mathematical methods and computer simulation. Topics may include optimization, dynamical systems, axiom systems, queuing theory, and introduction of a simulation language. Second half will include team projects and reports. Prerequisite: Mathematics 111, Computer Science 112, and some additional sophistications in at least one of the following: mathematics, computer science, or applying mathematics in a field of interest. (Cross-listed as Mathematics 360.)

375 Combinatorics and Graph Theory
Enumeration techniques with emphasis on permutations and combinations, generating functions, recurrence relations, inclusion and exclusion and the pigeonhole principle. Graph theory with emphasis on trees, circuits, cut sets, planar graphs, chromatic numbers and transportation networks. Also included will be designs with emphasis on Latin squares, finite projective and affine geometries, block designs and design of experiments. Prerequisite: Mathematics 230. (Cross-listed as Mathematics 375.)

427 Introduction to Database systems
Fall
An in depth study of the proper methods of design for database systems with a heavy emphasis on the relational model. An introduction to Hierarchic, Inverted List and Network Systems as well as Data Definition Languages and Data Manipulation Languages. Prerequisite: Computer Science 212, Mathematics 230.

434 Theory of Computation
Formal grammars, sentence derivation and ambiguity, finite state machines, equivalence and reduction, equivalence of right linear grammars and finite state automata, limitations of finite state automata, Turing machines and effective computability, unsolvable problems and NP-complete problems. Prereq: Mathematics 230.

461 Compiler Design
Spring
An examination of the major features of a compiler for a high level language. Includes syntactic analysis, symbol table generation, parsing, error recovery, code generation and code optimization. Students will implement a complete compiler/interpreter for an assigned minilanguage. Prerequisite: Computer Science 212 and 213. Co-requisite: Computer Science 318.


Dept. Info. Faculty MAA Links Home