CSCE - Computer Sci & Engr (CSCE)

CSCE 110 Programming I

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Basic concepts in using computation to enhance problem solving abilities; understanding how people communicate with computers, and how computing affects society; computational thinking; representation of data; analysis of program behavior; methods for identifying and fixing errors in programs; understanding abilities and limitation of programs; development and execution of programs.

CSCE 111 Introduction to Computer Science Concepts and Programming

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Computation to enhance problem solving abilities; understanding how people communicate with computers, and how computing affects society; computational thinking; software design principles, including algorithm design, data representation, abstraction, modularity, structured and object oriented programming, documentation, testing, portability, and maintenance; understanding programs’ abilities and limitations; development and execution programs.

CSCE 113 Intermediate Programming and Design

Credits 2. 1 Lecture Hour. 3 Lab Hours.

Continuation of ENGR 112; programming and design with C++; topics include design and implementation of functions, classes, and class hierarchies; software development strategies; error handling and exceptions; testing and debugging; type safety; strings; templates and the STL; graphics and GUIs; mathematical computation; and principles of object-oriented programming.
Prerequisites: Knowledge of C++ programming, class design, portable graphics, and parameterized types and their implementations.

CSCE 121 Introduction to Program Design and Concepts

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Computation to enhance problem solving abilities; computational thinking; understanding how people communicate with computers, how computing affects society; design and implementation of algorithms; data types, program control, iteration, functions, classes, and exceptions; understanding abstraction, modularity, code reuse, debugging, maintenance, and other aspects of software development; development and execution of programs.
Prerequisite: Programming course (high school or college).

CSCE 181 Introduction to Computing

Credit 1. 1 Lecture Hour.

Introduction to the broad field of computing; presentations from industry and academia about how computer science concepts are used in research and end products; includes a major writing component.

CSCE 206 Structured Programming in C

Credits 4. 3 Lecture Hours. 2 Lab Hours.

(BCIS 1420, COSC 1420) Structured Programming in C. Basic concepts, nomenclature and historical perspective of computers and computing; internal representation of data; software design principles and practice; structured and object-oriented programming in C; use of terminals, operation of editors and executions of student-written programs.

CSCE 221 Data Structures and Algorithms

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Specification and implementation of basic abstract data types and their associated algorithms: stacks, queues, lists, sorting and selection, searching, graphs, and hashing; performance tradeoffs of different implementations and asymptotic analysis of running time and memory usage; includes the execution of student programs written in C++.
Prerequisite: CSCE 113 or CSCE 121.
Corequisite: CSCE 222/ECEN 222.

CSCE 222/ECEN 222 Discrete Structures for Computing

Credits 3. 3 Lecture Hours.

Provide mathematical foundations from discrete mathematics for analyzing computer algorithms, for both correctness and performance; introduction to models of computation, including finite state machines and Turing machines.
Prerequisite: MATH 151.
Cross Listing: ECEN 222/CSCE 222.

CSCE 285 Directed Studies

Credits 1 to 4. 1 to 4 Lecture Hours.

Special project in computer science. Project must be approved by the department.
Prerequisite: Approval of department head.

CSCE 289 Special Topics in...

Credit 1. 1 Lecture Hour.

Selected topics in an identified area of computer science. May be repeated for credit.
Prerequisite: Approval of instructor.

CSCE 291 Research

Credits 1 to 4. 1 to 4 Lecture Hours.

Research conducted under the direction of faculty member in computer science. May be repeated 2 times for credit.
Prerequisites: Freshman or sophomore classification and approval of instructor.

CSCE 310 Database Systems

Credits 3. 3 Lecture Hours.

File structures and access methods; database modeling, design and user interface; components of database management systems; information storage and retrieval, query languages, high-level language interface with database systems.
Prerequisites: CSCE 221 with a grade of C or better; junior or senior classification.

CSCE 312 Computer Organization

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Introduction to computer systems from programmer's perspective: simple logic design, data representation and processor architecture, programming of processors, memory, control flow, input/output, and performance measurements; hands-on lab assignments.
Prerequisites: CSCE 221 with a grade of C or better; junior or senior classification or approval of instructor.

CSCE 313 Introduction to Computer Systems

Credits 4. 3 Lecture Hours. 2 Lab Hours.

Introduction to system support for application programs, both on single node and over network: OS application interface, inter-process communication, introduction to system and network programming, and simple computer security concepts; hands-on lab assignments.
Prerequisite: CSCE 221 with a grade of C or better; CSCE 312 or
corequisite CSCE 350/ECEN 350.

CSCE 314 Programming Languages

Credits 3. 3 Lecture Hours.

Explores the design space of programming languages via an in-depth study of two programming languages, one subject-oriented (Java), one functional (Haskell); focuses on idiomatic uses of each language, and on features characteristic for each language.
Prerequisites: CSCE 221 with grade of C or better; junior or senior classification or approval of instructor.

CSCE 315 Programming Studio

Credits 3. 2 Lecture Hours. 2 Lab Hours.

Intensive programming experience that integrates core concepts in Computer Science and familiarizes with a variety of programming/development tools and techniques; students work on 2 or 3 month-long projects each emphasizing a different specialization within Computer Science; focuses on programming techniques to ease code integration, reusability, and clarity.
Prerequisites: CSCE 312 and CSCE 314; or CSCE 350/ECEN 350.
Corequisite: CSCE 313.

CSCE 350/ECEN 350 Computer Architecture and Design

Credits 4. 3 Lecture Hours. 3 Lab Hours.

Computer architecture and design; use of register transfer languages and simulation tools to describe and simulate computer operations; central processing unit organization; microprogramming; input/output and memory system architectures.
Prerequisites: ECEN 248 with a grade of C or better; junior or senior classification.
Cross Listing: ECEN 350/CSCE 350.

CSCE 410 Operating Systems

Credits 3. 3 Lecture Hours.

Hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction: algorithms for CPU scheduling, memory and general resource allocation, process coordination and management; case studies of several operating systems.
Prerequisites: CSCE 313 and CSCE 315.

CSCE 411 Design and Analysis of Algorithms

Credits 3. 3 Lecture Hours.

Study of computer algorithms for numeric and non-numeric problems; design paradigms; analysis of time and space requirements of algorithms; correctness of algorithms; NP-completeness and undecidability of problems.
Prerequisite: Grade of C or better in CSCE 221 and CSCE 222/ECEN 222; junior or senior classification or approval of instructor.

CSCE 420 Artificial Intelligence

Credits 3. 3 Lecture Hours.

Fundamental concepts and techniques of intelligent systems; representation and interpretation of knowledge on a computer; search strategies and control; active research areas and applications such as notational systems, natural language understanding, vision systems, planning algorithms, intelligent agents and expert systems.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 431 Software Engineering

Credits 3. 2 Lecture Hours. 2 Lab Hours.

Application of engineering approach to computer software design and development; life cycle models, software requirements and specification; conceptual model design; detailed design; validation and verification; design quality assurance; software design/development environments and project management.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 433 Formal Languages and Automata

Credits 3. 3 Lecture Hours.

Basic types of abstract languages and their acceptors; the Chomsky hierarchy; solvability and recursive function theory; application of theoretical results to practical problems.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 434 Compiler Design

Credits 3. 3 Lecture Hours.

Programming language translation: functions and general organization of compiler design and interpreters; theoretical and implementation aspects of lexical scanners; parsing of context free languages; code generation and optimization; error recovery.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 435 Parallel Computing

Credits 3. 3 Lecture Hours.

Overview of parallel computing technology and programming methods; includes multiprocessor architectures, programming tools, parallel performance, parallel algorithms, and applications of parallel computing.
Prerequisites: CSCE 315 and junior or senior classification or approval of instructor.

CSCE 436 Computer-Human Interaction

Credits 3. 3 Lecture Hours.

Comprehensive study of the Computer-Human Interaction (CHI) area; includes history and importance of CHI; CHI design theories; modeling of computer users and interfaces; empirical techniques for task analysis and interface design; styles of interaction and future directions of CHI including hypermedia and computer-supported collaborative work.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 438 Distributed Objects Programming

Credits 3. 3 Lecture Hours.

Principles of distributed computing and programming with current paradigms, protocols, and application programming interfaces including Sockets, RMI, CORBA, IDL, Servlets, Web Services; security issues with public/private keys, digital signatures, forms and GUI based applications with multi-tier components, database connectivity and storing/streaming data structured using XML.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 440 Quantum Algorithms

Credits 3. 3 Lecture Hours.

Introduction to the design and analysis of quantum algorithms; basic principles of the quantum circuit model; gives a gentle introduction to basic quantum algorithms; reviews recent results in quantum information processing.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 441 Computer Graphics

Credits 3. 3 Lecture Hours.

Principles of interactive computer graphics; 2-D and 3-D rendering pipelines, including geometric object and view transformations, projections, hidden surface removal, and rasterization; lighting models for local and global illumination; hierarchical models of 3-D objects; systems and libraries supporting display and user interaction.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 442 Scientific Programming

Credits 3. 3 Lecture Hours.

Introduction to numerical algorithms fundamental to scientific and engineering applications of computers; elementary discussion of error; algorithms, efficiency; polynomial approximations, quadrature and systems of algebraic and differential equations.
Prerequisites: CSCE 221 with a grade of C or better; MATH 304 or MATH 308 or concurrent enrollment.

CSCE 443/VIST 487 Game Development

Credits 3. 2 Lecture Hours. 2 Lab Hours.

Aesthetic and technical aspects of computer game development, including game mechanics, story development, content creation and game programming; includes game design, interface design, 3D modeling and animation, graphics algorithms, shader programming and artificial intelligence; group project includes the design and development of a game from start to finish.
Prerequisites: CSCE 441 or VIST 486 or approval of instructor.
Cross Listing: VIST 487.

CSCE 444 Structures of Interactive Information

Credits 3. 3 Lecture Hours.

A systems approach to the programming, design, authoring and theory of hypermedia; object-oriented visual and interactive programming; visual design, including color, space, text and layering; the reference as a metadisciplinary structure; collecting and sampling; ontologies, maps and navigation as means of structuring information; create dynamic hypermedia that is expressive and interpretive.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 445 Computers and New Media

Credits 3. 3 Lecture Hours.

Potential and realized impact of computers in the design of new media; relationship between authors and readers of interactive material; influence of media design on the content expressed.
Prerequisite: CSCE 221 or approval of instructor.

CSCE 451 Software Reverse Engineering

Credits 3. 2 Lecture Hours. 2 Lab Hours.

Overview of the compilation mechanism to generate executable files and raw binary codes from source codes; executable file formats for an operating system to run the binary code; disassembly algorithms and control graph analysis; static and dynamic analyses; case studies on code obfuscation, codebreaking, malware analysis.
Prerequisite: CSCE 313 or approval of instructor.

CSCE 452 Robotics and Spatial Intelligence

Credits 3. 3 Lecture Hours.

Algorithms for executing spatial tasks; path planning and obstacle aance in two- and three-dimensional robots--configuration space, potential field, free-space decomposition methods; stable grasping and manipulation; dealing with uncertainty; knowledge representation for planning--geometric and symbolic models of the environment; task-level programming; learning.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 456 Real-Time Computing

Credits 4. 3 Lecture Hours. 3 Lab Hours.

Introduction to principles and applications of real-time computing; system architecture; D/A and A/D conversion; synchronous data acquisition and analysis; computers in real-time control; asynchronous monitoring and control; resource scheduling; interfacing issues; lectures and laboratory.
Prerequisites: CSCE 313 and MATH 152.

CSCE 462 Microcomputer Systems

Credits 3. 2 Lecture Hours. 1 Lab Hour.

Microcomputers as components of systems; VLSI processor and coprocessor architectures, addressing and instruction sets; I/O interfaces and supervisory control; VLSI architectures for signal processing; integrating special purpose processors into a system.
Prerequisite: CSCE 313.

CSCE 463 Networks and Distributed Processing

Credits 3. 3 Lecture Hours.

Basic hardware/software, architectural components for computer communications; computer networks, switching, routing, protocols and security; multiprocessing and distributed processing; interfacing operating systems and networks; case studies of existing networks and network architectures.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 464 Wireless and Mobile Systems

Credits 3. 3 Lecture Hours.

Introduction to wireless and mobile systems; wireless communication fundamentals; wireless medium access control design; transmission scheduling, network and transport protocols over wireless design, simulation and evaluation; wireless capacity; telecommunication systems; vehicular, adhoc, and sensor network systems; wireless security; mobile applications.
Prerequisites: CSCE 313; junior or senior classification or approval of instructor.

CSCE 465 Computer and Network Security

Credits 3. 3 Lecture Hours.

Fundamental concepts and principles of computer security, operating system and network security, secret key and public key cryptographic algorithms, hash functions, authentication, firewalls and intrusion detection systems, IPSec and VPN, wireless and web security.
Prerequisites: CSCE 313 and CSCE 315; junior or senior classification; or approval of instructor.

CSCE 469 Advanced Computer Architecture

Credits 3. 3 Lecture Hours.

Introduction to advanced computer architectures including memory designs, pipeline techniques, and parallel structures such as vector computers and multiprocessors.
Prerequisite:ECEN 350/CSCE 350.

CSCE 470 Information Storage and Retrieval

Credits 3. 3 Lecture Hours.

Representation of, storage of and access to very large multimedia document collections; fundamental data structures and algorithms of current information storage and retrieval systems and relates various techniques to design and evaluation of complete retrieval systems.
Prerequisite: CSCE 315 or approval of instructor.

CSCE 481 Seminar

Credit 1. 2 Lab Hours.

Investigation and report by students on topics of current interest in computer science.
Prerequisite: Junior or senior classification.

CSCE 482 Senior Capstone Design

Credits 3. 1 Lecture Hour. 6 Lab Hours.

Project-based course to develop system integration skills for solving real-world problems in computer science; significant team software project that integrates advanced concepts across computer science specializations; projects require design, implementation, documentation and demonstration, as well as design methodology, management process and teamwork.
Prerequisites: Senior classification; CSCE 315, CSCE 411, and two additional CSCE tracked courses.

CSCE 483 Computer Systems Design

Credits 3. 1 Lecture Hour. 6 Lab Hours.

Engineering design; working as a design-team member, conceptual design methodology, design evaluations, total project planning and management techniques, design optimization, systems manufacturing costs considerations; emphasis placed upon students' activities as design professionals.
Prerequisites: CSCE 315 and CSCE 462; senior classification.

CSCE 485 Directed Studies

Credits 1 to 6. 1 to 6 Other Hours.

Permits work on special project in computer science. Project must be approved by the department.
Prerequisite: Senior classification.

CSCE 489 Special Topics in...

Credits 1 to 4. 0 to 4 Lecture Hours. 0 to 4 Lab Hours.

Special topics in computer science that are new or unique that are not covered in existing courses.

CSCE 491 Research

Credits 1 to 4. 1 to 4 Other Hours.

Research conducted under the direction of faculty member in the computer science. May be repeated 2 times for credit. Registration in multiple sections of this course is possible within a given semester provided that the per semester credit hour limit is not exceeded.
Prerequisites: Junior or senior classification and approval of instructor.