Computer Science
A per semester fee for computing facilities will be assessed for one or more CS, STAT and MATH F310, F460 and F660 courses. This fee is in addition to any materials fees. Please see the class schedule for details.
CS F101 Computers and Society (m)
3 Credits
Computer literacy for everyone. Overview of computing machines and automatic data processing. Interaction between social institutions and automated decision-making. Introduction to business applications software and electronic mail. Some programming for understanding, not for skill development. Also available via Independent Learning. Special fees apply. Prerequisites: Two years of high school mathematics, including at least one year of algebra. (3+0)
CS F102 Introduction to Computer Science (m)
3 Credits
Introduction to computer science including a discussion of binary numbers, data representation, hardware, software, programming layers, operating systems, applications and networks. This web-based course is offered through the Center for Distance Education. Also available via Independent Learning. Special fees apply. Prerequisites: Two years of high school mathematics including at least one year of algebra. (3+0)
CS F103 Introduction to Computer Programming (m)
3 Credits
Programming for non-majors and for those computer science students without the background for CS F201. Concepts of object-oriented programming and algorithm design within the syntax of the JAVA programming language. Special fees apply. Prerequisites: MATH F107X or MATH F103X or MATH F161X. (3+0)
CS F201 Computer Science I (m)
3 Credits
The discipline of computer science including problem solving, algorithm development, structured programming, top-down design, good programming style, object-oriented programming and elementary data structures. Concepts implemented with extensive programming experience in a structured language and with a group programming project. Special fees apply. Prerequisites: One year high school level programming or CS F103 and mathematics placement at the F200-level. (3+0)
CS F202 Computer Science II (m)
3 Credits
The discipline of computer science including problem solving, algorithm development, structured programming, top-down design, good programming style, object-oriented programming and elementary data structures. Concepts implemented with extensive programming experience in a structured language and with a group programming project. Special fees apply. Prerequisites: CS F201. (3+0)
CS F205 C Programming (m)
3 Credits Offered As Demand Warrants
A high-level programming course using C for students with some experience in other programming languages such as Java, Perl, Basic, Pascal or Fortran. Special fees apply. Prerequisites: One year high school programming, CS F103 or CS F201 or ES F201. (3+0)
CS F221 Introduction to LINUX (m)
3 Credits Offered Fall Even-numbered Years
Introduction to the LINUX operating system including system features, scripting, shell instructions, controlling user processes, maintaining and administering a LINUX system. Special fees apply. (3+0)
CS F301 Assembly Language Programming (m)
3 Credits Offered Fall
Organization of computer registers, I/O and control. Digital representation of data. Symbolic coding, instructions, addressing modes, program segmentation, linkage, macros and subroutines. Special fees apply. Prerequisites: CS F201. (3+0)
CS F307 Discrete Mathematics (m)
3 Credits
Logic, counting, sets and functions, recurrence relations graphs and trees. Additional topics chosen from probability theory. Special fees apply. Prerequisites: MATH F201X or permission of instructor. (Cross-listed with MATH F307.) (3+0)
CS F311 Data Structures and Algorithms (m)
3 Credits
Data structures and the algorithms for their manipulation. Object-oriented programming, arrays, tables, stacks, queues, trees, linked lists, sorting, searching and hashing. Special fees apply. Prerequisites: CS F202. (3+0)
CS F321 Operating Systems (m)
3 Credits Offered Spring
Functions of files and operating systems. Review of required architectural features. The PROCESS concept. Storage management, access methods and control, interrupt processing, scheduling algorithms, file organization and management, and resource accounting. Special fees apply. Prerequisites: CS F301. (3+0)
CS F331 Programming Languages (m)
3 Credits Offered Spring
Syntax and semantics of widely differing programming languages. Syntax specification, block structure, binding, data structures, operators and control structures. Comparison of several languages such as ALGOL, LISP, SNOBOL and APL. Special fees apply. Prerequisites: CS F311. (3+0)
CS F361 Systems Security and Administration (m)
3 Credits Offered Alternate Fall Odd-numbered Years
Advanced systems programming including privileged instructions and system services, authentication technologies, host-based and network-based security issues. Applications to asynchronous I/O, process control and communication, device drivers and file management. Special fees apply. Prerequisites: CS F301. (3+0)
CS F381 Computer Graphics (m)
3 Credits Offered Fall
Creation of computer-generated images on programmable 3-D graphics hardware. Color, lighting, textures, hidden surfaces, 3-D geometric transformations, curve and surface representations, 2-D and 3-D user interfaces, and the visual modeling of physical phenomena. Special fees apply. Prerequisites: CS F202; MATH F202X or MATH F314. (3+0)
CS F405 Introduction to Artificial Intelligence (m)
3 Credits Offered Spring Even-numbered Years
Examine diverse branches of Al placing Al in larger context of computer science and software engineering. Knowledge representation formalism and search technology. Programming methodologies; procedural systems such as expert systems and blackboard systems and non-procedural systems such as neural networks. Software engineering aspects of problem selection, knowledge acquisition, verification and validation. Individual projects. Special fees apply. Prerequisites: CS F311 or permission of instructor. (3+0)
CS F411 Analysis of Algorithms (m)
3 Credits Offered Fall
Analysis of classic algorithms, their implementation and efficiency. Topics from combinatorics (sets, graphs), algebra (integer arithmetic, primes, polynomial arithmetic, GCD, Diophantine equations, encryption), systems (parsing searching, sorting) and theory (recursion, Turing machines). The complexity classes P, NP and NP complete. Special fees apply. Prerequisites: MATH F307, CS F311. (3+0)
CS F421W Distributed Operating Systems (m)
3 Credits Offered Fall
Detailed level study of distributed operating system algorithms, functions and associated implementation. Distributed operating system tuning methods and security. Role of distributed operating systems in net-centric computing. Programming, documentation and evaluation of distributed operating system segments as projects. Special fees apply. Prerequisites: CS F321; ENGL F111X; ENGL F211X or ENGL F213X; or permission of instructor. (3+0)
CS F425 Database Systems (m)
3 Credits Offered Spring Odd-numbered Years
Data independence, modeling, relationships and organization. Hierarchical, network and relational data models; canonical schema. Data description languages, SQL, query facilities, functional dependencies, normalization, data integrity and reliability. Review of current database software packages. Special fees apply. Prerequisites: CS F311; CS F321. (3+0)
CS F431W Programming Language Implementation (m)
3 Credits Offered As Demand Warrants
Design and implementation of major phases of high level language translators including scanning, parsing, translation, code generation and optimization. Students develop a compiler for a language in a group project which emphasizes good software engineering practices in structured design, testing and documentation. Special fees apply. Prerequisites: CS F331; ENGL F111X; ENGL F211X or ENGL F213X or permission of instructor. (3+0)
CS F441 System Architecture (m)
3 Credits Offered Fall
Computer design fundamentals, performance and cost, pipelining, instruction-level parallelism, memory hierarchy design, storage systems, and vector processing. Special fees apply. Prerequisites: CS F321; EE F342. (3+0)
CS F442 Computer Communication and Networks (m)
3 Credits Offered Fall Even-numbered Years
Study of computer networks using the ISO/OSI layered model as a framework. Design issues and trade-offs, protocols and selected standards. Emphasis on ISO/OSI Layers 1 - 4/(Physical, Data Link, Network and Transport Layers), plus medium access sublayers (LAN's, etc.). Special fees apply. Prerequisites: CS F321. (3+0)
CS F451 Automata and Formal Languages (m)
3 Credits Offered Spring Odd-numbered Years
Finite automata, regular languages, phrase structured grammars, context free language, push down automata, deterministic context free languages, recursive and recursively enumerable languages, Turing machines, decision problems, and undecidability. Special fees apply. Prerequisites: MATH F307; CS F201. (3+0)
CS F460 Introduction to Digital Forensics
3 Credits Offered Fall Odd-numbered Years
Takes a hands-on approach to the forensics examination of computer technology. Focuses on the forensic process, methods, and tools utilized to collect and preserve and examine digital evidence. Course topics include: collection, preservation and examination of evidence from computers including file systems, email and malicious code. Special fees apply. Prerequisites: CS F321; or permission of instructor. (3+0)
CS F462 Intrusion Detection Systems
3 Credits Offered Fall Even-numbered Years
Focus on IDS theory and practice and its importance; the origin and resolution of common security threats and vulnerabilities; host and network approaches to IDS implementation; and the legal, ethical, and privacy issues associated with IDS use and policies. Special fees apply. Prerequisites: CS F361; or permission of instructor. (3+0)
CS F463 Cryptography and Data Security
3 Credits Offered Spring Odd-numbered Years
Specialized study of cryptography and its application in securing data systems, with an emphasis on applied cryptography. Topics include history of cryptography, encryption, digital signatures, authentication, electronic commerce, key distribution and management, private and public key cryptography, and protocols. Special fees apply. Prerequisites: MATH F307; CS F311; or permission of instructor. (3+0)
CS F471W Software Engineering (m)
3 Credits Offered Fall
Introduction to basic software engineering principles, techniques, methods and standards as applied to the engineering of complex software systems. Topics from software system development process models, multiple view system modeling and specification using UML, classification of software systems, project management and legal issues. Special fees apply. Prerequisites: CS F311; ENGL F111X; ENGL F211X or ENGL F213X; or permission of instructor. (Cross-listed with SWE F471.) (3+0)
CS F472W,O Senior Project and Professional Practice
3 Credits Offered Spring
Group projects in a real computer industry environment and produce appropriate documentation and reports. Nature, ethics, and legal considerations of the computer science profession are discussed with an emphasis on ethics. Additional topics include project management, design methodologies, technical presentation, human-machine interface and programming team interactions. Special fees apply. Prerequisites: CS F471; COMM F131X or COMM F141X; ENGL F111X; ENGL F211X or ENGL F213X or permission of instructor. (3+0)
CS F480 Topics in Computer Science
3 Credits Offered As Demand Warrants
Topics include, but are not limited to; computational linear algebra, cryptography, parallel algorithm development and analysis. Note: Course may be repeated when topics change. Special fees apply. (0+3)
CS F481 Topics in Computer Graphics (m)
3 Credits Offered Spring
Hardware, software and techniques used in computer graphics taken from topics such as volume rendering, particle systems, shading, image processing, computer aided design, video effects, animation and virtual environments. Special fees apply. Prerequisites: CS F381. (3+0)
CS F490 Student Internship (m)
1 - 3 Credits
Students work on computer science project under the joint direction of a faculty member and participating industry or governmental agency. Graded Pass/Fail. Special fees apply. Prerequisites: Junior standing and acceptance in an approved internship program. (0+0)
CS F602 Software Project Management
3 Credits Offered Spring
Work in an IT project environment to produce appropriate documentation and reports. Nature, ethics and legal considerations of managing IT projects are discussed. Includes project management, design methodologies, scope management, risk management, human-machine interface and IT team interactions. Special fees apply. Prerequisites: Graduate standing or permission of instructor. (3+0)
CS F605 Artificial Intelligence
3 Credits Offered Spring Even-numbered Years
Study and writing of AI programs: expert systems, expert system shells, blackboard systems, neural networks. Representation of knowledge, pattern analysis, inference networks, neural network training. Study of software engineering aspects of AI software. Special fees apply. Prerequisites: Graduate standing or permission of CS graduate advisor. (3+0)
CS F611 Complexity of Algorithms
3 Credits Offered Fall
Theoretical analysis of various algorithms: topics include sorting, searching, selection, polynomial evaluation, NP completeness, decidability. Special fees apply. Prerequisites: CS F411. (3+0)
CS F621 Advanced Systems Programming
3 Credits Offered As Demand Warrants
Multiprogramming and multiprocessing systems. File and program security. Scheduling optimization and system tuning, I/O processing, archiving and system recovery, and initialization. Study of current systems. Special fees apply. Prerequisites: CS F311 and CS F321. (3+0)
CS F622 Performance Evaluation
3 Credits Offered As Demand Warrants
A survey of techniques of modeling and testing concurrent processes and the resources they share. Includes levels and types of system simulation, performance prediction, benchmarking and synthetic loading, hardware and software monitors. Special fees apply. Prerequisites: CS F321 or permission of Computer Science graduate advisor. (3+0)
CS F625 Database Systems Design
3 Credits Offered Fall
The design and analysis of database systems including data independence, relationships, and organization. Focus on data models, file organization and security, index organization, data integrity and reliability. Review of current database software packages. Design and implementation of a database application project. Special fees apply. Prerequisites: CS F311. (3+0)
CS F631 Programming Language Implementation
3 Credits Offered Fall
Formal treatment of programming language translation and compiler design. Parsing context-free languages, translation specifications, machine independent code, NBF, scanners, symbol tables, parsers and recursive descent. Programming of compiler or interpreter segments as projects. Special fees apply. Prerequisites: CS F331. (3+0)
CS F641 Advanced Systems Architecture
3 Credits Offered Spring
A study of advanced single processor systems. Detailed study of multiprocessor architectures, such as vector architectures, massively parallel processors and shared-memory multi-processors. Special fees apply. Prerequisites: CS F441 or permission of Computer Science graduate advisor. (3+0)
CS F642 Advanced Computer Networks
3 Credits Offered Fall
A study of networks of interacting computers. The problems, rationales and possible solutions for both distributed processing and distributed databases will be examined. Major national and international protocols will be presented. Special fees apply. Prerequisites: Graduate standing or permission of Computer Science graduate advisor. (3+0)
CS F651 The Theory of Computation
3 Credits Offered Spring Odd-numbered Years
Languages and formal models of algorithms: Turing machines, phrase structured grammars and recursive functions. Undecidability, the halting problem, Rice's Theorem. Special fees apply. Prerequisites: CS F451. (3+0)
CS F661 Optimization
3 Credits Offered Fall Even-numbered Years
Linear and nonlinear programming, simplex method, duality and dual simplex method, post-optimal analysis, constrained and unconstrained nonlinear programming, Kuhn-Tucker condition. Applications to management, physical and life sciences. Computational work with the computer. Special fees apply. Prerequisites: Knowledge of calculus, linear algebra, and computer programming. (Cross-listed with MATH F661.) (3+0)
CS F670 Computer Science for Software Engineers
3 Credits
An overview and survey of the theoretical underpinnings of computer science. Topics are taken from the areas of algorithms and data structures; computer architecture; computer networks, communications, and operating systems; computability and formal languages; languages and compilation. Also available via Independent Learning. Special fees apply. Prerequisites: Admission to the Master of Software Engineering degree program. Not required for students with a B.S. degree in Computer Science. (Cross-listed with SWE F670.) (3+0)
CS F671 Advanced Software Engineering
3 Credits Offered Spring
Advanced software development as an engineering discipline. Includes investigation of current tools, standards, foundation and trends in software engineering from component-ware, software system composition, e-systems, software architecture and CASE tools. Special fees apply. Prerequisites: CS F471; acceptance into the Master of Software Engineering degree program; or permission of instructor. (Cross-listed with SWE F671.) (3+0)
CS F672 Software Process Improvement
3 Credits Offered Spring Odd-numbered Years
Commonly applied methods for improving the software development process. Emphasis on the Software Engineering Institute's Capability Maturity Model, and specifically on the key process areas of Level 2 and Level 3 of that model. These include software configuration management, software quality assurance and software standards. Special fees apply. Prerequisites: CS F671 or permission of instructor. (Cross-listed with SWE F672.) (3+0)
CS F673 Software Requirements Engineering
3 Credits Offered As Demand Warrants
Focus on the requirements analysis phase of the software development life cycle. Study ways to obtain, analyze and specify complete and correct sets of requirements. Critique of selected requirements analysis models. Study of current large scale software developments that have failed or are failing. Development of software requirements specifications for large and real software systems via team efforts. Also available via Independent Learning. Special fees apply. Prerequisites: CS F671 or permission of instructor. (Cross-listed with SWE F673.) (3+0)
CS F674 Software Architecture
3 Credits Offered Spring
Software architectural styles are introduced and defined as structural descriptions of software systems. Methods for constructing and binding software systems are introduced and specified as operational views. The architectural approach, as a classical engineering method for describing structure and behavior of technical artifacts, will be applied for the composition of software systems. Special fees apply. Prerequisites: CS F671. (Cross-listed with SWE F674.) (3+0)
CS F680 Topics in Computer Science
1 - 4 Credits Offered As Demand Warrants
Example topics include, but are not limited to, software requirements engineering, cryptography, parallel algorithm development and analysis. May be repeated for credit with change of topic. Special fees apply. Prerequisites: Varies with each topic. Recommended: Varies with each topic. (1 - 4+0)
CS F681 Topics in Computer Graphics
3 Credits Offered Spring
Hardware, software and techniques used in computer graphics taken from topics such as refresh, storage, raster scan technology, volume rendering, particle systems, shading, image processing, computer aided design, video effects, animation and virtual environments. Special fees apply. Prerequisites: CS F481 and MATH F314. (3+0)
CS F690 Graduate Seminar and Project
1 - 6 Credits Offered Fall
First semester of two-semester seminar in which students will, individually or in teams, work on and present the results of major programming or literature survey projects in computer science or software engineering. Written and oral reports will be required. Graded Pass/Fail. Special fees apply. Prerequisites: 12 credits in graduate computer science or software engineering courses; or permission of Computer Science or Software Engineering graduate advisor. (Cross-listed with SWE F690.) (1 - 6+0)
CS F691 Graduate Seminar and Project
3 Credits Offered Spring
Second semester of a two-semester seminar in which students will, individually or in teams, work on and present the results of major programming or literature survey projects in computer science or software engineering. Written and oral reports will be required. Graded Pass/Fail. Special fees apply. Prerequisites: CS F690; 12 credits in graduate computer science or software engineering courses; or permission of Computer Science or Software Engineering graduate advisor. (Cross-listed with SWE F691.) (3+0)