COMPUTER SCIENCE (COMSC)

100: Overview of Computer Science. 0-3-3. Preq., MATH 101 or equivalent. An overview of the field of computing; history, impact on society, and current trends; together with an introduction to operating systems, editors, and rudimentary programming.

102: Programming with FORTRAN. 0-3-3. Preq., Eligible for MATH 111. Problem analysis, algorithm development, data and control structures, and interpretation of results, with emphasis on numerical applications.

109: Computer Programming. 0-3-3. (cannot be taken for credit toward any Computer Science degree) Fundamentals of computer programming. Emphasis is placed on problem analysis, algorithm development, and data and control structures.

120: Introduction to Computer Programming. 0-3-3. Preq., CSC 100 or equivalent and MATH 111. An introduction to program development. Emphasis is placed on problem analysis, algorithm development, data and control structures.

210: Discrete Mathematics for Computer Scientists. 0-3-3. Preq., CSC 120 and MATH 112. An overview of the mathematical foundations of computing. Topics include sets, symbolic logic, relations, functions, combinatorics, induction, trees, graphs, and Boolean algebra.

220: Data Structures. 0-3-3. Preq., CSC 120. The definition, representation, and manipulation of basic data structures such as arrays, stacks, queues, trees, and graphs. Practical applications of these structures will be emphasized.

230: Software Design. 0-3-3. Preq., CSC 220. Design, construction and maintenance of large software systems. Topics include project planning, requirements analysis, software design methodologies, software implementation and testing, maintenance.

240: Introduction to Concurrent Programming. 0-3-3. Preq., CSC 220. Fundamentals of concurrent, parallel, and distributed computing. Topics include semaphores, monitors, rendezvous, remote procedure calls, and asynchronous message passing, SIMD model, MIMD architectures.

251: Computer Organization & Assembly Language. 0-3-3. Preq., CSC 220. Introduction to computer organization and operation, data representation and manipulation, assembly language programming, register level operations, peripheral device interfaces.

265: Introduction to Digital Design. 0-2-2. Preq., CSC 251; Coreq., CSC 269. Introduction to digital design techniques, Boolean algebra, combinational logic, minimization techniques, simple arithmetic circuits, programmable logic, sequential circuit design, registers and counters.

269: Digital Design Lab. 3-0-1. Coreq., CSC 265. Laboratory for digital design techniques, combinational and sequential logic design, registers and counters.

299: Cooperative Education Applications. 40-0-1 (7). Preq., Admission to the College of Engineering and Science Cooperative Education Program. Pass/Fail.

310: Theory of Computing. 0-3-3. Preq., CSC 220 and MATH 311. An overview of formal languages, the abstract models of computing capable of recognizing those languages, and the grammar used to generate them.

325: Advanced Data Structures and Algorithms. 0-3-3. Preq., CSC 220. Advanced data structures and algorithm design. Topics include specialized trees, graphs, sets and tables, advanced searching and sorting, complexity analysis, and algorithm design techniques.

330: Programming Languages. 0-3-3. Preq., CSC 240, 325. Techniques for specifying the syntax and semantics of programming languages. Language concepts; execution environments; comparative analysis of programming languages.

345: Operating Systems. 0-3-3. Preq., CSC 240 & 265. An introduction to operating systems concepts. Topics include processor management, storage management, device management, performance, security, and case studies of common operating systems.

364: Computer Architecture. 0-3-3. Preq., CSC 265 & 269. Architecture and organization of computer systems. Topics include the processor, control unit and microprogramming, computer arithmetic, memory hierarchy and memory management, input/output, instruction sets.

404: Senior Capstone. 0-3-3. Preq., CSC 325 & senior standing. This course provides a forum for discussion of the social and ethical aspects of computing. Communication skills will be emphasized through professional presentations and formal written essays.

419: Special Topics in Theory of Computing. 0-3-3. Preq., consent of instructor. Selected topics in the area of computing theory that are of current importance or special interest.

420: Design and Analysis of Algorithms. 0-3-3. Preq., CSC 325 or consent of instructor. Design and analysis of efficient algorithms. Topics include complex data structures, advanced searching and sorting, algorithm design techniques, and complexity analysis.

425: Discrete Mathematics, Data Structures and Algorithms. 0-4-4. Preq., Consent of instructor (cannot be applied for credit toward any Computer Science degree). Mathematical foundations of computer science; definition, application and implementation of abstract data types; algorithm design and analysis techniques. (G)

429: Special Topics in Software Development. 0-3-3. Preq., consent of instructor. Selected topics in the area of software design that are of current importance or special interest.

430: Database Management Systems. 0-3-3. Preq., CSC 325 or consent of instructor. Database concepts, organizations and applications; database management systems; implementation of a simple database. (G)

436: Compiler Design. 0-3-3. Preq., CSC 310, 330 or consent of instructor. Principles of compiler design; assembler design; lexical analysis; syntax analysis; automatic parser generations; error detection and recovery. (G)

437: Programming Language Paradigms and Software Development. 0-4-4. Preq., CSC 425 and consent of instructor (cannot be applied for credit toward any Computer Science degree). Imperative, functional, logical and object-oriented paradigms; programming language semantics and language translation; specification, design, implementation, validation, and maintenance of large software systems. (G)

439: Special Topics in Programming Environments. 0-3-3. Preq., consent of instructor. Selected topics in the area of programming environments that are of current importance or special interest.

445: Architecture and Operating Systems; Parallel Computing. 0-4-4. Preq., CSC 425 and consent of instructor (cannot be applied for credit toward any Computer Science degree). Digital logic, instruction set architectures, microprocessor design; storage management, process synchronization and communications, device management; introduction to parallel architectures, languages and algorithms. (G)

449: Special Topics in Operating Systems. 0-3-3. Preq., consent of instructor. Selected topics in the area of operating systems that are of current importance or special interest.

450: Computer Networks: 0-3-3. Preq., CSC 345 or consent of instructor. An overview of computer networks. Topics include network topologies, layers, local area networks, and performance measurement and analysis. (G)

464: Advanced Digital Design. 0-3-3. Preq., CSC 265. Synchronous sequential circuits, FSM optimization and implementation, testing, level-mode sequential design, race and hazards, advanced ALU, programmable logic devices, CAD tools and HDLs.

466: Microprocessor Systems Design. 0-3-3. Preq., CSC 364. Microprocessor-based system design, bus design, memory systems, input/output interfacing and DMA, microprocessor-based laboratory project.

468: Introduction to VLSI. 0-3-3. Preq., CSC 265. VLSI design methodologies, fabrication and layout, combinational and sequential design in VLSI, subcell design, system design, advanced design techniques.

469: Special Topics in Computer Architecture. 0-3-3. Preq., consent of instructor. Selected topics in the area of computer architecture that are of current importance or special interest.

470: Computer Graphics. 0-3-3. Preq., CSC 325 or consent of instructor. Fundamentals of two and three dimensional computer graphics. Topics include line drawing, polygon rendering, clipping algorithms, two and three dimensional transformations, and projection techniques. (G)

472: Human-Computer Interface. 0-3-3. Preq., CSC 230 and 325. Theory, design, and implementation of graphical human-computer interface strategies. Topics include interface layout, visualizing knowledge, comparison of user interfaces, and hypertext/hypermedia.

475: Artificial Intelligence. 0-3-3. Preq., CSC 330 or consent of instructor. The design and implementation of artificially intelligent programs. Topics include game playing, heuristic search, logic, knowledge representation, and reasoning strategies. Social implications are also discussed. (G)

479: Special Topics in Computer Applications. 0-3-3. Preq., consent of instructor. Selected topics in the area of computer applications that are of current importance or special interest.

490: Applied Computing Project. 1-3 hours credit. Preq., junior standing in Computer Science or equivalent. Independent investigation of a problem in computing.

499: Special Topics in Computer Science. 0-3-3. Preq., consent of instructor. Selected topics of current importance or special interest.

505: Expert Systems. 0-3-3. Preq., CSC 475 or consent of instructor. Current topics in expert system design, knowledge acquisition, explanation generation and knowledge representation. A substantial expert system design, implementation and testing project is required.

512: Programming Language Semantics. 0-3-3. Preq., CSC 310 or CSC 436 or consent of instructor. Syntax specification using attribute grammars and two level grammars, operational semantics, translational semantics, formal semantic techniques such as denotational semantics, algebraic specification, and axiomatic semantics.

520: Advanced Analysis of Algorithms and Complexity. 0-3-3. Preq., CSC 420 or consent of instructor. Formal analysis of time and space requirements of various algorithms, greedy algorithms, divide-and-conquer, dynamic programming, P and NP algorithms; Turing machines and unsolvability.

521: Advanced Computer Architectures. 0-3-3. Preq., CSC 364. Topics include: pipeline systems design, processor design techniques (concepts, analysis, performance comparison, implementation, commercial processors), memory system design, interconnection media.

530: Database Theory. 0-3-3. Preq., CSC 430 or consent of instructor. Data models, relational algebra and relational calculus, data dependencies and schema normalization, Datalog, recovery and concurrency control, distributed database environments.

532: Advanced Topics in Software Engineering. 0-3-3. Preq., CSC 230 or consent of instructor. Readings in requirements analysis, formal specification techniques, software design techniques, CASE tools, software metrics, software verification and validation, quality assurance and software safety.

534: Performance Measurement and Evaluation. 0-3-3. Preq., CSC 345 or consent of instructor. Computer systems performance; analysis techniques; data acquisition methods; simulation techniques; interpretation of results.

541: High Performance Computer Architecture. 0-3-3. Preq., CSC 364. Topics include: principles of scalable performance, multiprocessor system design, message-passing systems, vector computers, data flow computers, and multithreaded architecture.

550: Special Problems. 1-4 semester hour credit. Individual research and investigation of a problem in computer science or computing practice.

551: Research and Thesis in Computer Science. Registration in any quarter may be for three semester hours credit or multiples thereof. Maximum credit allowed is six semester hours.

554: Advanced Networking. 0-3-3. Preq., CSC 450 or consent of instructor. May be repeated with change in subject matter. Selected research topics of current interest in the field of computer communications and networks.

555: Practicum. 0-3-3 Maximum credit allowed is three semester hours. Preq., 12 semester hours of graduate work. Analytical and/or experimental solution of a problem in computer science; technical literature survey required; development of a computer-based solution.

570: Advanced Topics in Computer Graphics. 0-3-3. Preq., CSC 470 or consent of instructor. Techniques used to produce realistic images of three-dimensional objects on computer graphics hardware. Topics include: reflection models, shading techniques, ray tracing, texture and animation.

575: Advanced Topics in Artificial Intelligence. 0-3-3. Preq., CSC 475 or consent of instructor. Advanced topics in artificial intelligence including: problem-solving systems, natural language understanding, intelligent tutoring systems, learning and neural networks.

581: Parallel Algorithms. 0-3-3. Preq., CSC 240. Models of parallel computers, basic communications operations, algorithms for searching, sorting, graph structures, and systolic systems, dynamic programming, performance and scalability of parallel systems.

582: Parallel Computational Methods. 0-3-3. Preq., CSC 240, MATH 415. Parallel implementations of FFT, interpolation, integration, Eigensystems, matrix maximization, ODEs, PDEs.

583: Computational Solutions for PDE I. 0-3-3. Preq., MATH 414. Finite difference schemes and their accuracy, stability, and convergence. Schemes for parabolic and hyperbolic PDEs. Emphasis on program implementation.

584: Computational Solutions for PDE II. 0-3-3. Preq., CSC 583 or MATH 574. Finite difference schemes for elliptic PDEs, iterative methods, and introduction to finite element methods and multigrid methods. Emphasis on program implementation.