Computer Sci & Computer Eng (CSCE)

Courses

CSCE A101 Introduction to Computer Science 3 Credits

Provides a broad overview of computer science and programming. Topics include introduction to programming, algorithmic problem solving and basic concepts in hardware. Demonstrates the role computation can play in solving useful problems as well as present programming concepts that enable students to write simple programs.
Special Note: This course is intended for students with little or no programming experience.

Prerequisites: ALEKS Overall Test 1 with a score of 030 or ALEKS Overall Test 2 with a score of 030 or ALEKS Overall Test 3 with a score of 030 or ALEKS Overall Test 4 with a score of 030 or ALEKS Overall Test 5 with a score of 030 or MATH A055 with a minimum grade of C or MATH A060 with a minimum grade of C or MATH A105 with a minimum grade of C or concurrent enrollment or MATH A151 with a minimum grade of C or concurrent enrollment or MATH A152 with a minimum grade of C or concurrent enrollment or MATH A155 with a minimum grade of C or concurrent enrollment or MATH A251 with a minimum grade of C or concurrent enrollment or MATH A251F with a minimum grade of C or concurrent enrollment or MATH A252 with a minimum grade of C or concurrent enrollment or MATH A252F with a minimum grade of C or concurrent enrollment or MATH A253 with a minimum grade of C or concurrent enrollment.

CSCE A201 Computer Programming I 4 Credits

Introduces fundamental computer programming techniques and problem solving. Covers basic syntax; sequential, branching, and iterative execution; arrays, functions, structures, pointers, and dynamic memory allocation/deallocation.
Registration Restrictions: Students must register concurrently for lab section.

Prerequisites: (CSCE A101 with a minimum grade of C or ES A261 with a minimum grade of C) and (MATH A105 with a minimum grade of C or concurrent enrollment or MATH A151 with a minimum grade of C or concurrent enrollment or MATH A152 with a minimum grade of C or concurrent enrollment or MATH A155 with a minimum grade of C or concurrent enrollment or MATH A251 with a minimum grade of C or concurrent enrollment or MATH A251F with a minimum grade of C or concurrent enrollment or MATH A252 with a minimum grade of C or concurrent enrollment or MATH A252F with a minimum grade of C or concurrent enrollment or MATH A253 with a minimum grade of C or concurrent enrollment).

Corequisites: CSCE A201L.

CSCE A211 Computer Programming II 4 Credits

Covers object-oriented programming concepts including real-world applications built using objects, classes, inheritance, hierarchies, polymorphism, recursion, unit testing, generics, linked lists, vectors, iterators, event processing and exception handling.
Registration Restrictions: Students must concurrently register for lab section.

Prerequisites: CSCE A201 with a minimum grade of C.

Corequisites: CSCE A211L.

CSCE A222 Object-Oriented Programming I 3 Credits

In-depth coverage of object-oriented programming in the Java programming language. Topics include inheritance, abstraction, interfaces, references, polymorphism, dynamic binding, class hierarchies, container classes, random access file input/output (I/O), serializability, graphical applications, event handling, Unified Modeling Language (UML) and object-oriented design.

Prerequisites: CSCE A201 with a minimum grade of C.

CSCE A241 Computer Hardware Concepts 4 Credits

Analysis and design of electronic devices used as building blocks for construction of simple combinational and sequential digital systems. Presents formats for data storage, number systems and alphanumeric codes, and methods of implementing logical and arithmetic operations within computers. Relates hardware components' capabilities and limitations to design requirements for computer processing, memory and control functions.
Registration Restrictions: Students must register concurrently for lab section.
Crosslisted With: EE A241

Prerequisites: CSCE A201 with a minimum grade of C or CSE A205 with a minimum grade of C.

Corequisites: CSCE A241L.

CSCE A248 Computer Organization and Assembly Language Programming 3 Credits

Covers organization and operation of a computer's processor, including registers, memory, input/output (I/O) and control. Assembly language programming with emphasis placed on hardware/software interface and computer design.

Prerequisites: CSCE A241 with a minimum grade of C or EE A241 with a minimum grade of C.

CSCE A302 Design Patterns in Java 3 Credits

Introduces Java as a modern object-oriented and portable programming language. Illustrates Java's capabilities with design patterns as solutions to recurring problems in developing object-oriented software. Includes a detailed examination of significant design patterns and selected programming projects in a current object-oriented language. Introduces modern, parallel computing techniques, such as threading.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science, Bachelor of Science in Computer Systems Engineering, or Bachelor of Science in Electrical Engineering

Prerequisites: CSCE A211 with a minimum grade of C.

CSCE A305 Android Programming 3 Credits

Covers Android development concepts and programming. Topics include development environments, design issues, interface and input/output (I/O), code development, and publication.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A222 with a minimum grade of C.

CSCE A311 Data Structures and Algorithms 3 Credits

Representation and organization of digital information in the form of effective and efficient data structures, manipulation of data structures in a procedural fashion, and the analysis and evaluation of various algorithms. The following topics will be covered: Abstract Data Types (ADT), arrays, tables, linked lists, stacks, queues, trees, sorting, searching, graphs, hashing, spanning trees, disjoint sets, parallel algorithms, and heaps.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science, Bachelor of Science in Computer Systems Engineering, or Bachelor of Science in Electrical Engineering; or instructor approval

Prerequisites: CSCE A211 with a minimum grade of C.

CSCE A321 Operating Systems 3 Credits

An introductory course on operating systems. Topics covered include all aspects of resource management and abstraction required to support application programs including: basic security, processes and threads, processor scheduling, synchronization, memory management, virtual memory, virtual machines, device drivers and Input/Output (I/O), and file systems.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A248 with a minimum grade of C and CSCE A311 with a minimum grade of C.

CSCE A331 Programming Language Concepts 3 Credits

Study of the theoretical foundations needed to design and implement modern programming languages, including syntax, type systems, semantics, and memory structures. Comparison of several programming languages in different paradigms such as procedural, functional, logic, and scripting languages. Programming assignments will be given in each language studied.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A248 with a minimum grade of C and CSCE A311 with a minimum grade of C.

CSCE A342 Digital Circuits Design 3 Credits

Digital system design using integrated circuits and field-programmable gate arrays (FPGAs). Design and discussion of data path and control units, finite state machines, and timing analysis. Digital circuit simulation and electronic schematic creation.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A241 with a minimum grade of C or EE A241 with a minimum grade of C.

CSCE A351 Automata, Algorithms and Complexity 3 Credits

Study of the theory of computing and algorithm analysis and design. Topics include context-free grammars and parsing, finite automata and regular languages, pushdown automata and context-free grammars, deterministic and nondeterministic Turing machines, decidability and computability. In the algorithm domain, the course provides and introduction to analysis and complexity of algorithms, searching/sorting algorithms, mathematical algorithms, and graph theoretic algorithms. Introduction to complexity theory.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science or the Bachelor of Science in Computer Systems Engineering or the Bachelor of Science in Electrical Engineering or instructor approval

Prerequisites: CSCE A311 with a minimum grade of C and (MATH A261 with a minimum grade of C or (MATH A265 with a minimum grade of C and MATH A306 with a minimum grade of C)).

CSCE A360 Database Systems 3 Credits

Application of data modeling, relational database concepts and design, normalization theory, and structured query language. Study of underlying data structures and implementations of data processing architectures.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A211 with a minimum grade of C or CSCE A222 with a minimum grade of C.

CSCE A365 Computer Networks 3 Credits

Introduces network architectures, layered protocols, Internet protocols and network service interfaces. Emphasis is on design and implementation of networking hardware, including routers, bridges, switches, hubs and repeaters. Covers local networks, addressing, routing, flow control, queuing, routing protocols and packet loss.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science or the Bachelor of Science in Computer Systems Engineering or the Bachelor of Science in Electrical Engineering or instructor approval

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A375 Fundamentals of Cryptocurrency Technologies 3 Credits

Introduces cryptographic primitives, data structures, and mining incentives underlying many cryptocurrencies. Topics include: cryptographic hash functions, Merkle trees, Poisson processes, Markov chains, Bloom filters, selfish mining, double spend attacks, and scaling issues. Security and privacy aspects of cryptocurrencies covered as well.

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A381 Computer Graphics 3 Credits

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.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science or the Bachelor of Science in Computer Systems Engineering or the Bachelor of Science in Electrical Engineering, or instructor approval

Prerequisites: CSCE A311 with a minimum grade of C and (MATH A252 with a minimum grade of C or MATH A252F with a minimum grade of C).

CSCE A395 Internship in Computing 3 Credits

Application of computer science or computer engineering skills in a professional work setting.
Special Note: May be taken up to three times, but only 3 credits may be applied toward CS or CSE major requirements.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A211 with a minimum grade of C.

CSCE A401 Software Engineering 3 Credits

Extends the ideas of software design and development from the introductory programming sequence to encompass the problems encountered in large-scale programs. Topics include software lifecycle models for developing large systems, advanced issues in object-oriented programming, design patterns, software development tools, project management principles and principles of interface design.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A405 Artificial Intelligence 3 Credits

Introduces the basic concepts of artificial intelligence (AI). Topics include intelligent agents; heuristics, local and adversarial search; first-order logic and knowledge of representation and machine learning.
Special Note: Not available for credit to students who have completed CSCE A605.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval
May Be Stacked With: CSCE A605

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A412 Evolutionary Computing 3 Credits

Introduces students to subjects in the broad field of evolutionary computing, including genetic algorithms, evolution strategies, evolutionary programming and genetic programming. Emphasis will be on the design, implementation, testing, debugging and verification of correct programs.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval
Special Note: Not available for credit to students who have completed CSCE A612.
May Be Stacked With: CSCE A612

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A415 Machine Learning 3 Credits

In-depth survey of basic and advanced concepts of machine learning. Topics include linear discrimination; supervised, unsupervised and semi-supervised learning; multilayer perceptrons; maximum-margin methods; Monte Carlo methods; and reinforcement learning.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval
Special Note: Not available for credit to students who have completed CSCE A615.
May Be Stacked With: CSCE A615

Prerequisites: CSCE A311 with a minimum grade of C and (STAT A253 with a minimum grade of C or STAT A307 with a minimum grade of C).

CSCE A448 Computer Architecture 3 Credits

A quantitative approach to computer architecture and parallelism, which addresses both the software and hardware aspects of parallelism in modern computing systems. Specific emphasis will be placed on instruction-level, thread-level, data-level, task-level and request-level parallelism, and developing parallel application code in assembler and high-level languages for systems such as graphics processing units (GPUs).
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A248 with a minimum grade of C.

CSCE A462 Data Mining 3 Credits

Survey and application of techniques for classification, clustering and association rule mining. Covers rule-based, tree-based, statistical and regression approaches.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval
Special Note: Not available for credit to students who have completed CSCE A662.
May Be Stacked With: CSCE A662

Prerequisites: CSCE A360 with a minimum grade of C.

CSCE A465 Computer and Network Security 3 Credits

Analyzes computer software and network vulnerabilities, as well as security mechanisms to detect and defend against system attacks, such as authentication, access control and cryptography. Includes vulnerabilities introduced in programming, web development, network protocol design, operating systems and databases. Legal and ethical issues concerning privacy, intellectual property and computer crime will be discussed in the context of case studies.
Special Note: Not available for credit to students who have completed CSCE A665.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science, Bachelor of Science in Computer Systems Engineering, or Bachelor of Science in Electrical Engineering; or instructor approval
May Be Stacked With: CSCE A665

Prerequisites: CSCE A365 with a minimum grade of C and (ES A302 with a minimum grade of C or STAT A253 with a minimum grade of C or STAT A307 with a minimum grade of C).

CSCE A470 Computer Science and Engineering Capstone Project 3 Credits

Application of computer science and computer engineering concepts, principles and practices to develop a research, applied software development, or computer engineering project. The student will analyze, design, document, implement and deliver a presentation and written report of a research project or software/hardware system of moderate complexity under the supervision of the instructor and/or other faculty. Includes a discussion of ethical, professional and contemporary issues in technology and the impact of computing technology in a global and societal context.
Registration Restrictions: Senior standing, completion of GER Tier 1 (basic college-level skills) courses, admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

Prerequisites: CSCE A365 with a minimum grade of C and (WRTG A211 with a minimum grade of C or WRTG A212 with a minimum grade of C or WRTG A213 with a minimum grade of C or WRTG A214 with a minimum grade of C or WRTG A2W with a minimum grade of C) and ((CSCE A351 with a minimum grade of C and CSCE A401 with a minimum grade of C) or (CSCE A311 with a minimum grade of C and CSCE A342 with a minimum grade of C and CSCE A448 with a minimum grade of C)) and PHIL A305 with a minimum grade of C or concurrent enrollment.

Attributes: UAA Integrative Capstone GER.

CSCE A490 Topics in Computer Science and Computer Systems Engineering 3 Credits

Advanced topics in computer science or computer systems engineering not taught in other CSCE course offerings.
Special Note: May be repeated for credit with change of subtitle. Not available for credit to students who have completed CSCE A690 with same subtitle.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval
May Be Stacked With: CSCE A690

CSCE A495 Computing Internship Project 3 Credits

Application of computer science or computer engineering skills in a professional work setting. The student will analyze, design, develop and document a realistic computing project of moderate complexity under the supervision of a qualified professional who has agreed in advance to undertake this role.
Registration Restrictions: Admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval.
Special Note: May be taken up to three times, but only 3 credits may be applied toward CS or CSE major requirements.

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A498 Individual Research 1-3 Credits

Students will engage in an independent research project under the supervision of a faculty member. The result will be a paper or presentation prepared to publication standards.
Special Note: May be repeated up to a maximum of 6 credits.
Registration Restrictions: Upper-division standing, admission to BS Computer Science, BS Computer Systems Engineering, or BS Electrical Engineering, or instructor approval

CSCE A601 Advanced Software Engineering 3 Credits

Coverage of current methodologies used to develop large software systems. Topics include requirements, specification, design, implementation, testing, project management, formal methods, maintenance and evolution. Seminar discussion of classic and current research articles in software engineering.
Registration Restrictions: Graduate standing

CSCE A605 Advanced Artificial Intelligence 3 Credits

Analysis, design and implementation of intelligent systems utilizing heuristics, local and adversarial search, first-order logic, knowledge representation techniques, and machine learning algorithms. Students will review published artificial intelligence research, write a research paper, and present research findings in a public forum.
Special Note: Not available for credit to students who have completed CSCE A405.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A405

CSCE A612 Advanced Evolutionary Computing 3 Credits

Broad coverage of the field of evolutionary computing, including genetic algorithms, evolution strategies, evolutionary programming and genetic programming. Emphasis will be on the design, implementation, testing, debugging and verification of correct programs. Graduate students will be required to complete a literature review of recent research in evolutionary computation, write the results of that review in a research summary paper and complete a presentation of these findings in a public forum.
Special Note: Not available for credit to students who have completed CSCE A412.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A412

CSCE A615 Advanced Machine Learning 3 Credits

Topics include linear discrimination; supervised, unsupervised and semi-supervised learning; multilayer perceptron; maximum-margin methods; Monte Carlo simulation; and reinforcement learning. Students are required to implement a research project that applies machine learning technique(s) to a unique and original data set, or to develop a technique that combines or modifies one or more machine learning algorithms.
Special Note: Not available for credit to students who have completed CSCE A415.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A415

CSCE A621 Mission Critical Systems 3 Credits

Covers the timing correctness of hardware and software, including rate-monotonic analysis for software and design for fault recovery methods for hardware and software sanity monitoring. Topics include microprocessor- based predictable response and embedded systems that require the integration of sensor and actuator devices, analog to digital and digital to analog interfaces, single and multicore microprocessors, a real-time operating system, and multitasking application software.
Registration Restrictions: Graduate standing

CSCE A631 Advanced Compilers 3 Credits

Programming language translation from a high-level object-oriented language to assembly code. Covers lexical analysis, semantic analysis, code generation, finite state automata, flow graphs, directed graphs, parsers, parse trees and regular expressions. Includes optimizations to improve runtime efficiency. Graduate students will be required to complete a literature review of recent research in compilers, write the results of that review in a research summary paper and complete a presentation of these findings in a public forum.
Registration Restrictions: Graduate standing

CSCE A632 Advanced Programming Languages 3 Credits

Advanced topics in the design of programming languages, including abstract syntax, denotational semantics, operational semantics, type systems, run-time behavior, program analysis, garbage collection and compilation. Programs are written in multiple programming languages to study programming paradigms.
Registration Restrictions: Graduate standing

CSCE A646 Advanced Digital Media and Interactive Systems 3 Credits

Covers digital media systems for digital cinema and digital cable/Internet media creation, delivery, and interactive systems. Topics covered include digital audio and video encoding and decoding, transport, multiplexing, broadband and baseband transmission, real-time requirements, and interactive on-demand systems for video and video games. Students will be required to complete a literature review of recent research in digital media and interactive systems, write a research summary paper and complete a presentation in a public forum.
Registration Restrictions: Graduate standing

CSCE A648 Advanced Computer Architecture 3 Credits

Advanced computer architecture of very large scale integration (VLSI) digital systems. Focus will be placed on basic VLSI technologies, design automation algorithms and techniques, computer-aided design tools, and design of complete integrated systems on a chip. The course includes a hands-on design project utilizing design automation software tools to implement a chip design, layout and simulation.
Registration Restrictions: Graduate standing

CSCE A650 Advanced Mobile Robotics 3 Credits

Introduction to robotics with embedded systems. Covers mobile robots, sensors, motors, and their control with autonomous and user-controlled operations in aerial, underwater and land environments. Applications of real-time image processing and neural networks will be covered. Students will be required to complete a literature review of recent research in robotics, write the results of that review in a research summary paper and complete a presentation of these findings in a public forum.
Registration Restrictions: Graduate standing

CSCE A652 Advanced Computational Theory and Algorithms 3 Credits

Advanced study of the design and analysis of algorithms, computational theory and complexity theory. The focus is on models of computation, the theory of automata and formal languages. Topics include finite state machines, formal grammars, recursive function theory, pattern matching, linear programming, non-deterministic polynomial (NP) time problems and NP-complete problems.
Registration Restrictions: Graduate standing

CSCE A660 Advanced Database Systems 3 Credits

Comprehensive treatment of relational theory, non-relational database models, transaction processing, concurrency control and administration of databases in practice. Includes an applied project of significant scope, solving a database challenge for an outside client and formally presenting the results.
Registration Restrictions: Graduate standing

CSCE A662 Advanced Data Mining 3 Credits

Survey and application of techniques for classification, clustering and association rule mining. Covers rule-based, tree-based, statistical and regression approaches. Project involving an original data set, including integration, formatting, conceptualization, hypothesis testing, analysis, evaluation and presentation of results.
Special Note: Not available for credit to students who have completed CSCE A462.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A462

CSCE A665 Advanced Computer and Network Security 3 Credits

Analyzes computer software, network vulnerabilities and security mechanisms to detect and defend against system attacks. Discusses legal and ethical issues concerning privacy, intellectual property and computer crime. Students will be required to complete a research paper in computer and network security and complete a presentation of the research paper in a public forum.
Special Note: Not available for credit to students who have completed CSCE A465.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A465

CSCE A667 Advanced Computer Network Systems 3 Credits

Covers network architectures, layered protocols, Internet protocols and network service interfaces. Emphasis on design and implementation of networking hardware, including routers, bridges, switches, hubs and repeaters. Local networks, addressing, routing, flow control, queuing, routing protocols and packet loss.
Registration Restrictions: Graduate standing

CSCE A671 Research Methods in Computer Science and Engineering 3 Credits

Covers skills and research methods utilized in computer science and engineering research, including empirical and theoretical research. Discusses the steps in conducting a literature review, writing research proposals and papers, writing a thesis, hypothesis testing, delivering a research presentation, and ethical conduct.
Registration Restrictions: Graduate standing

CSCE A685 Advanced Computer and Machine Vision 3 Credits

Covers how computers perceive the visual world of humans. Includes image processing, segmentation, boundary detection, as well as identifying, reconstructing, and modeling objects from images and videos.
Special Note: Not available for credit to students who have completed CSCE A485.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A485

CSCE A690 Topics in Computer Science and Computer Systems Engineering 3 Credits

Examines advanced topics in computer science and computer science engineering. A research summary paper and research presentation is required.
Special Note: May be repeated for credit with change of subtitle. Not available for credit to students who have completed CSCE A490 with same subtitle.
Registration Restrictions: Graduate standing and instructor permission
May Be Stacked With: CSCE A490

CSCE A698 Individual Research 3 Credits

Students will engage in independent research projects under the supervision of a faculty member. The result will be a research paper prepared to publication standards with the goal of submission for publication in a refereed journal or conference.
Special Note: May be repeated for a maximum of 6 credits.
Registration Restrictions: Graduate standing and instructor permission

CSCE A699 Thesis 1-6 Credits

Independent research conducted under the supervision of a thesis committee. Students must investigate a state-of-the-art computer engineering or computer science research topic, write a detailed proposal, identify a thesis advisor, obtain the advisor's approval to conduct the proposed research, complete the research and write a thesis that is approved by the committee.
Special Note: A maximum of 6 credits may be applied toward degree requirements for the MS in Computer Engineering and Computer Science.
Registration Restrictions: Admission to the MS in Computer Engineering and Computer Science program and permission of thesis advisor.