Computer Science (CS)
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.
Prerequisites: Two years of high school mathematics, including at least one year of algebra.
Lecture + Lab + Other: 3 + 0 + 0
CS F103 Introduction to Computer Programming
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.
Prerequisites: Math placement at the 100-level.
Lecture + Lab + Other: 3 + 0 + 0
CS F201 Computer Science I
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.
Prerequisites: One year high school level programming or CS F103; mathematics placement at the F200-level.
Lecture + Lab + Other: 3 + 0 + 0
CS F202 Computer Science II
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.
Prerequisites: CS F201.
Lecture + Lab + Other: 3 + 0 + 0
CS F301 Assembly Language Programming
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.
Prerequisites: CS F201.
Lecture + Lab + Other: 3 + 0 + 0
CS F311 Data Structures and Algorithms
3 Credits
Offered Fall
Data structures and the algorithms for their manipulation. Algorithmic efficiency and asymptotic notation. Algorithms for searching and sorting. Abstract data types and container data structures: arrays, linked lists, stacks, queues, trees, tables, heaps, balanced search trees, hash tables.
Prerequisites: CS F202.
Lecture + Lab + Other: 3 + 0 + 0
CS F321 Operating Systems
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.
Prerequisites: CS F301.
Lecture + Lab + Other: 3 + 0 + 0
CS F331 Programming Languages
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.
Prerequisites: CS F311.
Lecture + Lab + Other: 3 + 0 + 0
CS F361 Systems Security and Administration
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.
Prerequisites: CS F301.
Lecture + Lab + Other: 3 + 0 + 0
CS F371 Computer Ethics and Technical Communication
3 Credits
Offered Fall
This course explores the social, legal and ethical issues aggravated, transformed or created by computer technology. Additional focus is on technical communication skills needed in the computer industry.
Prerequisites: WRTG F211X, WRTG F212X, WRTG F213X or WRTG F214X; COJO F131X or COJO F141X; CS F202.
Lecture + Lab + Other: 3 + 0 + 0
CS F372 Software Construction
3 Credits
Offered Spring
Methods for programming and construction of complete computer applications, including refractoring, performance measurement, process documentation, unit testing, version control, integrated development environments, debugging and debuggers, interpreting requirements, and design patterns.
Prerequisites: CS F311.
Lecture + Lab + Other: 3 + 0 + 0
CS F381 Computer Graphics
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.
Prerequisites: CS F202; MATH F253X or MATH F314.
Lecture + Lab + Other: 3 + 0 + 0
CS F392 Seminar
1-6 Credits
Lecture + Lab + Other: 0 + 0 + 0
CS F405 Introduction to Artificial Intelligence
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.
Prerequisites: CS F311.
Lecture + Lab + Other: 3 + 0 + 0
CS F411 Analysis of Algorithms
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.
Prerequisites: MATH F307, CS F311.
Lecture + Lab + Other: 3 + 0 + 0
CS F421 Distributed Operating Systems (W)
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.
Prerequisites: CS F321; WRTG F111X; WRTG F211X, WRTG F212X, WRTG F213X or WRTG F214X.
Lecture + Lab + Other: 3 + 0 + 0
CS F425 Database Systems
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.
Prerequisites: CS F311; CS F321.
Lecture + Lab + Other: 3 + 0 + 0
CS F441 System Architecture
3 Credits
Offered Spring
Computer design fundamentals, performance and cost, pipelining, instruction-level parallelism, memory hierarchy design, storage systems, and vector processing.
Prerequisites: CS F321; EE F341.
Lecture + Lab + Other: 3 + 0 + 0
CS F442 Computer Communication and Networks
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.).
Prerequisites: CS F321.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F321.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F361.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: MATH F307; CS F311.
Lecture + Lab + Other: 3 + 0 + 0
CS F471 Senior Capstone I (W)
3 Credits
Offered Fall
Introduction to software engineering and project management principles, techniques, methods and standards for software system development. Additional topics include technical communication, computer ethics and legal issues.
Prerequisites: CS major; senior standing; CS F311; CS F371.
Lecture + Lab + Other: 3 + 0 + 0
CS F472 Senior Capstone II (O, W)
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.
Prerequisites: CS F372; CS F471.
Lecture + Lab + Other: 3 + 0 + 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.
Lecture + Lab + Other: 0 + 3 + 0
CS F481 Graphics Rendering
3 Credits
Offered Spring Even-numbered Years
High-quality rendering techniques used in computer graphics: raytracing, shadows, antialiasing, volume rendering, radiometry and radiosity. Also topics such as particle systems, shading, image processing, computer aided design, video effects, animation and virtual environments.
Prerequisites: CS F381.
Lecture + Lab + Other: 3 + 0 + 0
CS F482 Simulations in Computer Graphics
3 Credits
Offered Spring Odd-numbered Years
Software to simulate physical phenomena for use in interactive visualization, such as particle systems, Naiver-Stokes fluid dynamics, and finite element solid mechanics. Includes Lagrangian and Eulerian meshes, stability, and discretization order. Our focus is high performance qualitatively correct simulations, rather than high- precision solutions.
Prerequisites: CS F381 and PHYS F212X.
Lecture + Lab + Other: 3 + 0 + 0
CS F600 Professional Software Development
4 Credits
Offered Fall
Participate in a group project to explore the technical, social and ethical aspects of software development. Topics include: requirements engineering, enterprise-level data storage, software architecture, security, software testing, legal issues, computer ethics, risk management and project management.
Prerequisites: CS F472.
Lecture + Lab + Other: 4 + 0 + 0
CS F601 Algorithms, Architecture and Languages
4 Credits
Offered Spring
Current research on, and cross-cutting interrelationships between computer algorithms, machine architecture and languages. Covers asymptotic performance analysis including NP-completeness, modern parallel hardware including multicore, and grammars and parsing from regular expressions to BNF.
Prerequisites: CS F331; CS F411; CS F441 or EE F443.
Lecture + Lab + Other: 4 + 0 + 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.
Prerequisites: Graduate standing or permission of CS graduate advisor.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F411.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F311 and CS F321.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F331.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F441 or permission of Computer Science graduate advisor.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: Graduate standing or permission of Computer Science graduate advisor.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: CS F471.
Lecture + Lab + Other: 3 + 0 + 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.
Prerequisites: Varies with each topic.
Recommended: Varies with each topic.
Lecture + Lab + Other: 1-4 + 0 + 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.
Prerequisites: CS F481 and MATH F314.
Lecture + Lab + Other: 3 + 0 + 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.
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.
Lecture + Lab + Other: 1-6 + 0 + 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.
Prerequisites: CS F690; 12 credits in graduate computer science or software engineering courses; or permission of Computer Science or Software Engineering graduate advisor.
Lecture + Lab + Other: 3 + 0 + 0
CS F692 Seminar
1-6 Credits
Lecture + Lab + Other: 1-6 + 0 + 0
CS F698 Non-Thesis Research/Project
1-9 Credits
Lecture + Lab + Other: 0 + 0 + 0
CS F699 Thesis
1-9 Credits
Lecture + Lab + Other: 0 + 0 + 0