NOTE: Click course name for description.
(3) An introduction to the field of computer science. This is a breadth course, providing a survey of a broad range of computing topics, and is intended for prospective CS majors, related engineering fields, and other scientific and technical disciplines. Topics include programming in a modern high-level language, lower level languages, program execution (how a computer carries out the program's instructions), digital logic, computer architecture, operating systems, and software applications. (3) Computer history, problem solving algorithms, control structures, representation of data. Introductory programming in the C++ language. Intended for computer science majors. (F, Sp)
(3) Computer history, problem solving algorithms, control structures, representation of data. Introductory programming in the C++ language. Intended for computer science majors. (F, Sp)
(3) A programming intensive continuation of CSCI 221 For computer science majors. Non-computer science majors may be admitted with departmental approval. May be used as one of the programming language requirements for a minor in computer science. Prereq: Grade of C or better in CSCI 221. (F, Sp)
(3) Applications of mathematics fundamental to the science and technology of Computer Science, providing an appropriate theoretical background for advanced courses. Topics include propositional logic, predicate logic and quantified statements, proof techniques including mathematical induction, sequences, recursion, set theory, and Boolean algebra. (F)
A continuation of CSCI 301. Applications of mathematics fundamental to the science and technology of Computer Science. Topics include functions, relations, counting and combinatorics, probability, graphs, trees, basic algorithm analysis, regular expressions, and finite-state automata. (S)
(3) Structure of digital computers, introduction to machine language, number representations, symbolic coding and assembler language, register sets, instruction types, addressing modes, input-output subroutines, segmentation, paging and introduction to operating systems. Prereq: CSCI 222. (F)
(3) Detailed study of data structures and their implementations. Strings, lists, queues, stacks, graphs, trees, B-trees, AVL trees, sparse arrays, and file structures. Algorithms involving iteration, recursion, sorting, searching, hashing, and complexity analysis.
(3) Advanced programming using an object- oriented language, classes, packages, software reusability, data abstraction and data hiding, inheritance, polymorphism, exception handling, graphics objects, graphical user interfaces and multimedia. Prereq: CSCI 222. (Sp)
(3) Formulation of numerical problems for solution on a digital computer. Error analysis and control, nonlinear equations, differentiation, integration, systems of equations, differential equations, curve fitting and eigenvalue problems. Prereq: CSCI 221 and MATH 252; CSCI 301 or MATH 310. (Same as MATH 340/540.) (as needed)
(3) Fundamentals of microcomputer connectivity and communications. Local and wide area network basics, networking architecture and standards. Network protocols including TCP/IP. Comparison, installation and maintenance of Network Operating System. Prereq: CSCI 222. (F)
(3) Introduction to artificial intelligence, pattern recognition and classification, fuzzy set logic, natural language user interfaces, learning machines and adaptive systems, object oriented programming inference and rule based systems, arity, expert systems, associative systems, forward and backward chaining backtracking depth first and breadth first searching. Programming in languages appropriate to A.I. Prereq: CSCI 222 and 301. (as needed)
(3) Introduction to Fundamentals of Parallelism, Parallel computation models which include parallel algorithms and parallel architectures, performance and scalability of parallel systems, parallel algorithms and programming for well known numerical problems. Prereq: CSCI 222 or 226. (as needed)
(3) Fundamentals of data base processing. Network, hierarchical and relational data bases. Comparison of data base systems. Data base implementation. Prereq: CSCI 222 or 250. (F)
(3) A study of the organization of modern computer systems, memory organization and management features, virtual memory systems interrupt service, multiprogramming, hardware and software equivalency, RISC and large instruction set machines, logic emulation, variable architectures, multilevel machines, stack and pipeline architectures. Concurrency in computation. The organization of microcomputers, medium and large computer systems. Special architectures. Prereq: CSCI 320 and 325. (F)
An examination of topics related to classical models of computation. Topics include finite automata, regular expressions, context-free grammars, pushdown automata, turing machines, computability, and an introduction to complexity classes such as P, NP, and NP-Complete.
(3) Frame buffers, display files, graphics primitives, transformations of two-dimensional spaces, windows, viewports, clipping, covering, transformations of three-dimensional space, parallel and perspective projections, stereoscopic views, hidden line algorithms. Prereq: CSCI 222, CSCI 301 or MATH 341. (F-odd)
(3) Syntax and basic characteristics of grammars, Backus-Naur form, language constructs, dynamic and static storage allocation, binding time, interpreted versus compiled languages, lexical analysis, parsing, special purpose languages. Prereq: CSCI 320. (Sp)
(3) Theory of compilable languages, construction of software for compiling, interpreting and translating computer languages. Study of various types of translators, implementation of a translator for a language. Prereq: CSCI 320 and 325. (F-even)
(3) A study of operating systems, processing of l/O and interrupt service, buffering, spooling and memory management services, security and error protection, systems accounting and resource allocation, multi-programming and multi-processing, inter-process communication, includes the study and use of several operating systems. Prereq: CSCI 320 and 325. (Sp)
(3) Selected topics in computer science including trends, ethics, employment and graduate school opportunities. Selected readings from various contemporary and historical sources. Written and oral reports individually or with a team. Individual and team projects as determined by the instructor. Prereq: computer science major, senior standing. (F)
About Computer Science
Learn about the mission and goals of our Computer Science program.