Computer Science (CSCI)

Undergraduate

CSCI 1100. Algorithmic Languages I. (P) (3) Prerequisite: MATH 1100, 1101 or 1103 with a grade of C or better, or placement by the department. Basic concepts and terminology of computers, problem solving with computers, programming techniques required to formulate and program various numerical and non-numerical algorithms, through study of higher-level programming languages, such as PASCAL (CSCI 1100P) or FORTRAN (CSCI 1100). Computer Science majors may not receive credit for CSCI 1100. (On demand)

CSCI 1101. Introduction to Computer Concepts. (3) Prerequisite or corequisite: MATH 1100, 1101, or 1103. Introductory course for non-CSCI majors that covers various aspects of computer hardware and software, and surveys the application of computers in different fields--business, medicine, engineering, government, education. PC-software (word processing, spreadsheets, and databases) is introduced by several projects/assignments. (This course is not the equivalent of CSCI 1100 as a prerequisite for other computer science courses.) May not be taken while a computer science major (or minor). (Fall, Spring, Summer) (Evenings)

CSCI 1201. Introduction to Computing I. (P) (2) Prerequisites: MATH 1100, 1101, or 1103 with a grade of C or better, or consent of the department. Corequisite: CSCI 1201L. Basic concepts and terminology of computers; introduction to algorithmic problem solving strategies; basic data structures; data and procedural abstraction; and numerical and symbolic computing. (Fall, Spring, Summer)(Evenings)

CSCI 1201L. Computer Lab I (P) (1) Corequisite: CSCI 1201. Laboratory exercises dealing with program mechanics; algorithm development; and the use of computers in problem solving. One laboratory period of two hours per week. (Fall, Spring, Summer)(Evenings)

CSCI 1202. Introduction to Computing II. (2) Prerequisite: CSCI 1201 with a grade of C or better or consent of the department. Corequisite: CSCI 1202L. Extension of topics introduced in CSCI 1201 with studies of algorithm complexity; searching and sorting tech-niques; dynamic data structures; software development methodologies; and the computer science profession. (Fall, Spring, Summer) (Evenings)

CSCI 1202L. Computer Lab II (1) Prerequisite: CSCI 1201L. Corequisite: CSCI 1202. Laboratory exercises dealing with complexity; analysis of algorithms; software development; and dynamic data structures. One laboratory period of two hours per week. (Fall, Spring, Summer) (Evenings)

CSCI 1203L. Computer LabII (for MIS). (1) Prerequisite: CSCI 1201L. Corequisite: CSCI 1202. Laboratory exercises dealing with complexity; analysis of algorithms; software development; and dynamic data structures. One laboratory period two hours per week. (Fall, Spring, Summer) (Evenings)

CSCI 2050. Topics in Computer Science. (1-3) Prerequisite: consent of the department. Topics in computer science selected to supplement the regular course offerings at the 2000 level. (May be repeated for credit with the consent of the department.) (On demand)

CSCI 2111. Beginning Structured COBOL. (3) Prerequisite: CSCI 1201 or INFO 2130 with a grade of C or better, or consent of the department. A study of COBOL and its use in file manipulations, including structures, sorting, blocks, accessing of files, and transaction processing. Uses of file systems will be studied. (Fall, Spring, Summer) (Evenings)

CSCI 2112. Advanced Structured COBOL. (3) Prerequisites: CSCI 2111 or consent of the department. A continuation of the study of COBOL and its use in developing application programs and systems of programs. Emphasis on the development of programs to run in the interactive environment or batch programs in support of on-line processing. (Fall, Spring, Summer) (Evenings)

CSCI 2116. C Programming. (3) Prerequisite: CSCI 1201 with a grade of C or better or consent of the department. A study of the programming language C. Data types, operators, functions, program structure and storage classes, exceptions, concurrent programming, preprocessor. (On demand)

CSCI 2123. Introduction to Numerical Methods. (3) Prerequisites: CSCI 1201 and MATH 1142. General concepts of scientific computing and their applications to such areas as non-linear equations, numerical integration, spline and polynomial interpolation, and initial value problems. (Fall, Summer)(Evenings)

CSCI 2140. Assembly Language, Machines, Systems. (3) Prerequisite: CSCI 1201 with a grade of C or better. General principles of assembly languages and assembly language programming. Computer structure, addressing techniques, internal representations, assembly systems. (On demand)

CSCI 2141. Introduction to Systems Programming. (3) Prerequisite: CSCI 2140 with a grade of C or better. Advanced assembly language concepts, use and management of macro and subroutine libraries, debugging techniques, program segmentation, parameter passing, file access and control programming, device drivers and interrupt handlers, reentrant coding, coroutines. (On demand)

CSCI 2161. Data Structures. (3) Prerequisites: CSCI 1201 with a grade of C or better, and knowledge of two higher-level languages. Stacks, queues, arrays, strings, lists, trees, and graphs. Applications to recursion, garbage collection, storage compaction, tree traversals, accessing of information, design and analysis of algorithms. (On demand)

CSCI 2163. Introduction to File Processing. (3) Prerequisites: knowledge of a high-level language which supports random access file methods and CSCI 1202. Concepts and techniques of structuring data on external storage devices; and to provide the foundation for applications of data structures and file processing techniques. (Fall, Summer) (Evenings)

CSCI 2170. Information Storage and Retrieval. (3) Prerequisite: CSCI 1202. Introduction to the concepts, principles, and skills of information science including tools for the analysis, design, implementation, and evaluation of information systems and information storage. (Spring, Summer)(Evenings)

CSCI 2175. Logic and Algorithms. (3) Prerequisites: CSCI 1201 and MATH 1242. Introduction to propositional calculus; predicate calculus; algorithms; logic functions; finite-state machines; logic design. (Spring, Summer) (Evenings)

CSCI 2215. Design and Analysis of Algorithms. (3) Prerequisite: CSCI 1202 with a grade of C or better, and Math 1165. Techniques and tools for the development of correct algorithms. Structured and modular programming efficiency and correctness, testing recusing, complexity, and heuristics. (Fall, Spring, Summer, Evenings)

CSCI 3050. Topics in Computer Science. (1-3) Prerequisite: consent of the department. Topics in computer science at the upper-division level. May be repeated for credit as topics vary with the consent of the department. (On demand)

CSCI 3102. Programming Languages. (3) Prerequisite: CSCI 1202. Formal definition of programming languages including specification of syntax and semantics. Evolution of programming languages and language design principles. Structural organization, control structures, data structures and types, name visibility, binding times, parameter passing modes, subroutines, coroutines, and tasks. Functional programming, list processing, logic programming, object-oriented programming systems. (Fall, Spring, Summer)(Evenings)

CSCI 3106. Structured Systems Analysis and Design. (3) Prerequisite: CSCI 1202 or consent of the department. Structured systems development. Strategies and techniques of structured analysis and structured design to produce logical methodologies for dealing with complexity in the development of information systems. (Fall, Spring, Summer) (Evenings)

CSCI 3110. Compiler Construction. (3) Prerequisites: CSCI 1202 and 3102. Review of programming language structures, translation, loading, execution, and storage allocation. Compilation of simple expressions and statements. Organization of a compiler, including compile-time and run-time tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization techniques, and overall design. Use of compiler writing languages and boot strapping. (Spring, Alternate years)(Evenings)

CSCI 3112. Design and implementation of Object-oriented Systems. (3) Prerequisite: CSCI 2215 or consent of the department. Introduction to the basic paradigm of object-oriented programming and system development. Topics include: evolution of object-oriented methodology; concept of the object-oriented approach; object-oriented programming languages; object-oriented analysis and design; the design of software for reuse; and incremental software development. (Spring)(Evenings)

CSCI 3120. Introduction to Computer Graphics. (3) Prerequisites: CSCI 1202 and MATH 2164 or consent of department. Graphics hardware; raster algorithms; geometric transformations; 2D/3D interactive graphics; 3D viewing and perspective projections; color and lighting models; hidden surface removal; modeling hierarchies; fractals; curved surfaces. (Spring) (Evenings)

CSCI 3130. Human-Computer Interaction. (3) Prerequisite: CSCI 2163 or 2170. Concepts of the design of the human-machine environment, with special emphasis on human-computer interaction and how people acquire, store, and use data from the environment and from computers. Topics include: analysis, creation and improvement of equipment and environment to make them compatible with human capabilities and expectation; analysis of existing equipment with respect to user usability and interfacing capabilities. (Fall, Alternate years) (Evenings)

CSCI 3131. Human and Computer Information Processing. (3) Prerequisite: CSCI 2163 or 2170. Overview of methods people use to acquire, store, and use the data they receive from the environment and their implementation of computers. Topics include: perception, pattern recognition, attention, memory, knowledge representation, language, and problem solving. (On demand)

CSCI 3132. Information Systems. (3) Prerequisite: CSCI 2163 or 2170. Analysis, design, implementation, and evaluation of information systems. Topics include: techniques of manipulating data; behavioral component of dealing with the user and integration of technology, procedures, and people. (On demand)

CSCI 3134. Digital Image Processing. (3) Prerequisites: CSCI 1202, MATH 1242 and 2164, with grades of C or better. Overview of fundamentals of image acquisition, representation, enhancement, segmentation, reconstruction, analysis and recognition. Image generation, viewing and perception; image transformations using the Fourier transform; spatial operations and filtering (spatial and frequency domain); image coding; lossless and lossy compression; boundary and region based segmentation; thresholding and classification; boundary and regional image descriptors; matching and neural networks; shape numbers. (Fall) (Evenings)

CSCI 3141. Computer Organization. (3) Prerequisite: CSCI 2140 with a grade of C or better, or consent of the department. Basic digital components, data representations, machine control flow, accessing, transfer and I/O functions. Introduction to multilevel machines, micro programming concepts, survey of various computer architectures. (On demand)

CSCI 3143. Operating Systems. (3) Prerequisite: CSCI 3141 or CPGR 3182. Introduction to multiprogramming operating systems. Process synchronization and management of memory, devices, and files; performance evaluation. (Fall, Spring) (Evenings)

CSCI 3152. Symbolic Programming. (3) Prerequisite: CSCI 1202. Basic concepts of symbolic programming including selected topics in artificial intelligence, heuristic searching, symbolic algebra, language parsing, and theorem proving. (Fall) (Evenings)

CSCI 3153. Introduction to Artificial Intelligence. (3) Prerequisite: CSCI 3152. Basic concepts of artificial intelligence. Topics include: defining the problem as a state space search, production systems; heuristic search; basic problem-solving methods; game playing; knowledge representation using predicate logic, semantic nets, frames, and scripts; non-monotonic reasoning, statistical and probabilistic reasoning. (Spring) (Evenings)

CSCI 3155. Software Engineering. (3) Prerequisite: CSCI 2215 or consent of the department. The system development cycle is examined in detail from the aspects of software engineering. Current tools and techniques of systems design-data dictionary, data flow diagrams, structured walkthroughs, and capacity planning will be taught and presented in conjunction with case studies and class problems. (Fall, Spring) (Evenings)

CSCI 3160. Data Base Design and Implementation. (3) Prerequisite: CSCI 1202 with a grade of C or better. Logical and physical database organization, data models, design issues, and secondary storage considerations. Emphasis on actual participation in the design and implementation of databases. (Fall, Spring) (Evenings)

CSCI 3166. Distributed Computer Information Systems. (3) Prerequisite: knowledge of a high level language which supports random access file methods or consent of the department. Distributed vs. centralized processing. Data communications; speed; capacity, media, protocols. Network architectures. Distribution of data, computer power, and support. Evaluation of alternatives. Case studies. (Fall, Spring, Summer) (Evenings)

CSCI 3650. Senior Project. (3) Prerequisites: senior standing, and two CSCI 31xx/41xx courses with a grade of C or better, or consent of the department. An individual or group project in the teaching, theory, or application of computer science under the direction of a faculty member. Projects must be approved by the department before they can be initiated. (Fall, Spring)(Evenings)

CSCI 3651. Senior Project. (3) Prerequisite: CSCI 3650. A continuation of CSCI 3650. (Fall, Spring) (Evenings)

CSCI 3688. Computers and Their Impact on Society. (VW) (3) Prerequisites: Junior standing and consent of the department. A study of current topics (software piracy, hacking, professional conduct) in computer science and the impact of computers on various subsets (home, government, education) of society. (Fall, Spring, Summer) (Evenings)

CSCI 3690. Seminar. (1-6) Prerequisite: consent of the department. May be repeated for credit.(On demand)

CSCI 3691. Seminar. (1-6) Prerequisite: consent of the department. A continuation of CSCI 3690. May be repeated for credit. (On demand)

CSCI 3695. Computer Science Cooperative Education Seminar. (1) Required of Co-op students during semester immediately following each work assignment for presentation of reports on work done the prior semester. May be repeated for credit. (Fall, Spring, Summer)

CSCI 3699. Senior Seminar. (1-3) Prerequisites: Senior standing and consent of the department. Each participant will prepare a lecture on a topic in computer science. Emphasis will be on communication of technical information as well as on content of the presentations. May be repeated for credit. (On demand)

Undergraduate/Available for Graduate Credit

Additional work required for graduate credit.

CSCI 40XX. Topics in Computer Science. (3) (3G) (On demand)

CSCI 4170. Project Management. (3)(3G) Prerequisite: CSCI 2215, 3155, or consent of department. Classical and matrix organization techniques for project management. The system development cycle. Project control: major documents and milestones; phases, functions, and key documents. Impact of project size and project subject on techniques and procedures. (Spring) (Alternate years) (Evenings)

Graduate and Advanced Undergraduate

CSCI 50XX. Topics in Computer Science. (3) (3G) (On demand)

CSCI 5102. Survey of Programming Languages. (3) (3G) Prerequisite: consent of the department. Study of the concepts underlying various computer languages and comparing and evaluating various language features. History and development of various languages, such as FORTRAN, ALGOL, PASCAL, MODULA-2, C, C++, Ada, Lisp, Smalltalk, Prolog...; evaluation and comparison of various algorithms and language suitability. Selection of languages for problems/ environments. Overview of various languages. (Fall) (Spring) (Evenings)

CSCI 5110. Programming Languages and Compilers. (3) (3G) Prerequisite: consent of the department. Introduction to the concepts and techniques used in describing, defining, and implementing programming languages and their compilers. Introduction to parsing and parser construction; LL and LR grammars; syntax directed translation; data object representations; run time structures; intermediate languages; code optimization. (Spring) (Alternate years) (Evenings)

CSCI 5112. Software System Design and Implementation. (3) (3G) Prerequisite: consent of the department. Introduction to the techniques involved in the planning and implementation of large software systems. Emphasis on human interface aspects of systems. Planning software projects; software design process; top-down design; modular and structured design; management of software projects; testing of software; software documentation; choosing a language for software system. (Fall) (Spring) (Evenings)

CSCI 5130. Computer Graphics. (3) (3G) Prerequisite: CSCI 1202 or equivalent and MATH 2164 or equivalent. Introduction to the design and implementation of interactive graphics systems. Raster and vector display systems, I/O devices; graphics primitives and their attributes; raster algorithms and clipping; 2D/3D geometric transformations; 3D viewing and projections; hierarchical and procedural models; surface representation; color and lighting models; rendering algorithms; global illumination and texture mapping. (Fall) (Alternate years) (Evenings)

CSCI 5131. Simulation. (3) (3G) Prerequisites: CSCI 1201 and its lab, and MATH 3122, or consent of department. Emphasis on the design and derivation of mathematical models of dynamic systems; deterministic simulation; random events; non-deterministic simulation; discrete simulation; comparison and optimization. (On demand)

CSCI 5150. Artificial Intelligence. (3) (3G) Prerequisites: CSCI 2175 and 1202 or consent of department. To introduce core ideas in AI. Heuristic versus algorithmic methods; problem solving; game playing and decision making; automatic theorem proving; pattern recognition; adaptive learning; projects to illustrate theoretical concepts. (Fall) (Alternate years) (Evenings)

CSCI 5151. Intelligent Robotics. (3) (3G) Prerequisites: CSCI 1202 and MATH 2164, or consent of the department. General introduction to spatial descriptions and transformations, and manipulator position and motion. More study on robot planning, programming, sensing, vision, and CAD/CAM. (Fall) (Alternate years) (Evenings)

CSCI 5152. Computer Vision. (3) (3G) Prerequisites: CSCI 1202 and MATH 2164, or consent of the department. General introduction to computer vision and its application. Topics include low level vision, 2D and 3D segmentation, 2D description, 2D recognition, 3D description and model-based recognition, and interpretation. (Fall) (Alternate years) (Evenings)

CSCI 5156. Computer-Aided Instruction. (3) (3G) Prerequisite: consent of the department. History of CAI; study of current CAI systems; development of man-machine dialogue; programming tools for CAI; information structures for computer-oriented learning. Advantages/disadvantages/costs of CAI. (On demand)

CSCI 5165. Coding and Information Theory. (3) (3G) Prerequisite: knowledge of probability theory. Information theory; coding theory; Shannon's theorem; Markov process; channel capacity; data transmission codes; error correcting codes; data compression; data encryption. (On demand)

CSCI 5170. Formal Languages and Automata. (3) (3G) Prerequisites: one semester of discrete structures or consent of the department. Detailed study of abstract models for the syntax of programming languages and information processing devices. Languages and their representation; grammars; finite automata and regular sets; context-free grammars and pushdown automata; Chomsky Hierarchy; closure properties of families of languages; syntax analysis. (On demand)

CSCI 5171. Logic Programming. (3) (3G) Prerequisite: CSCI 2175 or consent of the department. Prolog programming language; programming techniques in Prolog; foundations of logic programming including computability of Horn clause logic, completeness of resolution principle, complexity of unification algorithms, and verification of logic programs; principles of implementing logic programming systems; selected topics from applications of logic programming to expert systems, intelligent database systems, and/or natural language processing. (On demand)

Graduate Only

CSCI 60XX. Topics in Computer Science. (3G) Prerequisite: consent of department. Exposure to current research and literature. Detailed exploration of main theme or a collection of related topics which may vary from term to term. (On demand)

CSCI 605X. Advanced Topics in Artificial Intelligence. (3G) Prerequisite: CSCI 5150 or consent of the department. A selected topic in artificial intelligence, such as machine learning, computer vision, heuristic search, natural language processing. (May be repeated for credit as topics vary and with the approval of the department.) (On demand)

CSCI 6110. Advanced Topics in Programming Languages and Compilers. (3G) A continuation of material in CSCI 5110 with emphasis on advanced aspects of optimization, data flow analysis, and error discovery. (On demand)

CSCI 6111. Evolutionary Computation. (3G) Prerequisite: CSCI 6114 or consent of the department. General introduction to optimization problems. Optimization techniques: hill climbing, simulated annealing, evolution strategies, genetic algorithms. Evolution programming techniques. (Spring) (Alternate years) (Evenings)

CSCI 6114. Algorithms and Data Structures. (3G) Prerequisite: full graduate standing. Introduction to techniques and structures used and useful in design of sophisticated software systems. Records; arrays; linked lists; queues; stacks; trees; graphs; storage management and garbage collection; recursive algorithms; searching and sorting; string matching; graph algorithms; time and space complexity. (Fall, Spring) (Evenings)

CSCI 6115. Advanced Topics in Algorithms and Data Structures. (3G) Prerequisite: CSCI 6114. Continuation and extension of CSCI 6114. Seminumerical algorithms; probabilistic algorithms; parallel algorithms; NP-completeness; computationally hard problems; approximation algorithms. (On demand)

CSCI 6132. Computer Modeling and Simulation. (3G) Prerequisites: CSCI 5131 and consent of department. Introduction to modeling of complex systems. Emphasis on modeling of computer systems and configurations. (On demand)

CSCI 6144. Operating Systems Design. (3G) Prerequisite: CSCI 6114 or consent of department. Introduction to features of a large-scale operating system with emphasis on resource-sharing environments. Computer system organization; resource management; multiprogramming; multi-processing; file systems; virtual machine concepts; protection and efficiency. (Fall)(Alternate years) (Evenings)

CSCI 6154. Heuristic Search. (3G) Prerequisite: CSCI 5150. Heuristics and problem representation; heuristic-search procedures; formal properties and performance analysis of heuristic methods; game-searching strategies and heuristic programming; search with probabilities; knowledge-guided search. (On demand)

CSCI 6155. Knowledge-Based Systems. (3G) Prerequisite: CSCI 5150. Knowledge representation; automatic deduction; techniques for handling uncertainty and inexact knowledge; principles of rule-based systems and frame-based systems. Selected study of actual knowledge-based systems and knowledge engineering tools. A course project of building a knowledge-based system. (Spring) (Alternate years) (Evenings)

CSCI 6156. Machine Learning. (3G) Prerequisite: CSCI 5150. Machine learning methods and techniques including: acquisition of declarative knowledge; organization of knowledge into new, more effective representations; development of new skills through instruction and practice; and discovery of new facts and theories through observation and experimentation. (On demand)

CSCI 6158. Natural Language Processing. (3G) Prerequisite: CSCI 5150. Principles, methodologies, and programming methods of natural language processing including foundations of natural language understanding, namely: lexical, syntactic, and semantic analysis, discourse integration, and pragmatic and morphological analysis. (On demand)

CSCI 6160. Database Systems, Design and Management. (3G) Prerequisite: CSCI 6114 or consent of the department. Introduction to principles of database design, and survey of alternative database organizations and structures. Logical database organization; schemas; subschemas; data description languages; hierarchical, network, and relational databases; database management systems; normal forms. (Fall) (Evenings)

CSCI 6161. Advanced Topics in Database Systems, Design and Management. (3G) Prerequisite: CSCI 6160. Continuation of CSCI 6160. Topics include addressing techniques; physical structures; searching; compaction techniques; storage hierarchies; multiple-key retrieval; efficiency and security considerations. (On demand)

CSCI 6164. Design and Implementation of Online Management Information Systems. (3G) Prerequisites: CSCI 6114 or consent of the department. The fundamental concepts and philosophy of planning and implementing an on-line computer system. Characteristics of on-line systems; hardware requirements; modeling of on-line systems; performance measurement; language choice for on-line systems; organization techniques, security requirements; resource allocation. (On demand)

CSCI 6166. Computer Communications and Networks. (3G) Prerequisite: CSCI 6114 or consent of the department. Introduction to the concepts of computer networks; their operating systems; and communication between nodes. Types of networks; communications and protocols; routing; message switching; optimization; distributed processing; coding and compaction. (Spring) (Evenings)

CSCI 6170. Logic for Artificial Intelligence. (3G) Prerequisite: CSCI 5150 or consent of the department. Introduction to basic concepts of logic for artificial intelligence, including declarative knowledge, inference, resolution, nonmonotonic reasoning, induction, reasoning with uncertain beliefs, distributed information systems, intelligent information systems, planning and intelligent-agent architecture. (On demand)

CSCI 6175. Computability and Complexity. (3G) Prerequisite: consent of the department. Study of computability, unsolvability, computational complexity. Concept of effective computability; recursive functions; mathematical models of computation; universal Turing machines; unsolvable problems; time and space complexity of computations; NP-complete problems; subrecursive hierarchies. (On demand)

CSCI 6690. Computer Science Seminar. (3G) Prerequisite: at least 18 graduate CSCI/CPGR hours and consent of department. Experience for the advanced M.S. student on current problems of computer design and application. (May be used by a student or small group of students to work with a professor on a topic of mutual interest. May be used to give a course on a topic announced in advance.) (On demand)

CSCI 6880. Individual Study. (1-3G) Prerequisites: At least 18 graduate CSCI/CPGR hours and consent of department. With the direction of a faculty member, students plan and implement appropriate objectives and

learning activities to develop specific areas of expertise through research, reading, and individual projects. May be repeated for credit. (On demand)

CSCI 6991. Computer Science Thesis. (0-6G) Prerequisite: consent of department. Graduate thesis research. Detailed exploration of an area of computer science chosen for thesis research. May be repeated for credit but no more than six hours may be applied to M.S. degree requirements. (Fall, Spring, Summer)
 


[97-99 Catalog] [Schedule of Classes] [Academic Calendar]