Computer Science & Computer Engineering (CSCE)

Courses

CSCE A101 Introduction to Computer Science 3 Credits

Provides a broad overview of computer science and programming. Introduces programming, algorithmic problem solving and basic concepts in hardware. Demonstrates the role computation can play in solving useful problems, and presents 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 055 or ALEKS Overall Test 2 with a score of 055 or ALEKS Overall Test 3 with a score of 055 or ALEKS Overall Test 4 with a score of 055 or ALEKS Overall Test 5 with a score of 055 or MATH A105 with a minimum grade of C 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 A221 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 A115 Introduction to Data Science 3 Credits

Introduces foundational knowledge in data science, focusing on skills and concepts that will prepare students for further studies in artificial intelligence (AI) and machine learning (ML). Emphasizes practical data analysis, statistical concepts, and an understanding of algorithms preparing students to tackle real-world data science problems.

Prerequisites: 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 or 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.

CSCE A201 Computer Programming I 3 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.

Prerequisites: (CSCE A101 with a minimum grade of C or ES A261 with a minimum grade of C) and CSCE A201L with a minimum grade of C or concurrent enrollment and (MATH A105 with a minimum grade of C or MATH A121 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 A221 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 or ALEKS Overall Test 1 with a score of 055 or ALEKS Overall Test 2 with a score of 055 or ALEKS Overall Test 3 with a score of 055 or ALEKS Overall Test 4 with a score of 055 or ALEKS Overall Test 5 with a score of 055).

CSCE A201L Computer Programming I Laboratory 1 Credit

Perform laboratory exercises for fundamental computer programming techniques and problem solving. Covers basic syntax; sequential, branching, and iterative execution; arrays, functions, structures, pointers, and dynamic memory allocation/deallocation.

Prerequisites: CSCE A201 with a minimum grade of C or concurrent enrollment.

CSCE A211 Computer Programming II 3 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.

Prerequisites: CSCE A201 with a minimum grade of C and CSCE A211L with a minimum grade of C or concurrent enrollment.

CSCE A211L Computer Programming II Laboratory 1 Credit

Perform laboratory exercises for 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.

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

CSCE A241 Computer Hardware Concepts 3 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.
Crosslisted With: EE A241

Prerequisites: CSCE A201 with a minimum grade of C.

CSCE A241L Computer Hardware Concepts Laboratory 1 Credit

Perform laboratory based 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.
Crosslisted With: EE A241L

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

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 and CSCE A241L with a minimum grade of C) or (EE A241 with a minimum grade of C and EE A241L 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

Covers 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.

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

Covers 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.

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

Covers the application of data modeling, relational database concepts and design, normalization theory, and structured query language. Covers underlying data structures and implementations of data processing architectures.

Prerequisites: CSCE A211 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 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 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 A443 Distributed Computing 3 Credits

Analyzes abstractions, mechanisms, and techniques of distributed systems to make them more robust and high-performing, leveraging networking and internetworking. Evaluates high-performance software frameworks that support concurrent and parallel executions and distributed computing spanning multiple computers and data centers. Emphasizes creating novel platforms using open source components, applying best practices of distributed file systems, peer-to-peer and overlay networks, coordination and agreement, transactions and concurrency control, replication, mobile and ubiquitous computing, time and global states, remote invocation, and interprocess communications.
Special Note: Not available for credit to students who have completed CSCE A643.
Registration Restrictions: Admission to the Bachelor of Arts in Computer Science or the Bachelor of Science in Computer Science, or the Bachelor of Science in Electrical Engineering, or the Bachelor of Science in Computer Systems Engineering
May Be Stacked With: CSCE A643

Prerequisites: CSCE A365 with a minimum grade of C or concurrent enrollment.

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 data mining including classification, clustering and association rule mining. Covers rule-based, tree-based, statistical and regression approaches.
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.
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 A365 with a minimum grade of C and (ES A302 with a minimum grade of C or concurrent enrollment or STAT A253 with a minimum grade of C or concurrent enrollment or STAT A307 with a minimum grade of C or concurrent enrollment).

CSCE A467 Real-Time Embedded Systems 3 Credits

Covers the design and programming of microcontroller-based embedded systems, emphasizing low-level hardware interaction using standard C and assembly language. Students will learn to develop real-time embedded applications and integrate hardware and software efficiently. Details strategies for power-efficient computing in embedded environments.
Crosslisted With: CSCE A467

Prerequisites: CSCE A248 with a minimum grade of C.

CSCE A470 Computer Science and Engineering Capstone Project 3 Credits

Covers the application of computer science and computer engineering concepts, principles, and practices to develop an applied software or computer engineering project. Provides space for students to analyze, design, document, implement, and deliver a presentation and written report on a design 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.

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 A485 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 A685.
Registration Restrictions: Admission to the Bachelor of Science in Computer Science, the Bachelor of Science in Computer Systems Engineering, the Bachelor of Science in Electrical Engineering, or instructor approval
May Be Stacked With: CSCE A685

Prerequisites: CSCE A311 with a minimum grade of C.

CSCE A490 Selected 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 the Bachelor of Science in Computer Science, Bachelor of Science in Computer Systems Engineering, Bachelor of Science in 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: Junior or senior standing and 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

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 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 A643 Distributed Computing 3 Credits

Analyzes abstractions, mechanisms, and techniques of distributed systems to make them more robust and high-performing, leveraging networking and internetworking. Evaluates high-performance software frameworks that support concurrent and parallel executions and distributed computing spanning multiple computers and data centers. Emphasizes creating novel platforms using open source components, applying best practices of distributed file systems, peer-to-peer and overlay networks, coordination and agreement, transactions and concurrency control, replication, mobile and ubiquitous computing, time and global states, remote invocation, and interprocess communications.
Special Note: Not available for credit to students who have completed CSCE A443.
Registration Restrictions: Graduate standing
May Be Stacked With: CSCE A443

CSCE A662 Advanced Data Mining 3 Credits

Surveys and describes application of techniques for data mining including classification, clustering and association rule mining. Covers rule-based, tree-based, statistical and regression approaches. Requires a project involving an existing 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 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 Selected 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 once with change of subtitle. Not available for credit to students who have completed CSCE A490 with same subtitle.
Registration Restrictions: Graduate standing or instructor approval
May Be Stacked With: CSCE A490

CSCE A695 Professional Internship 3 Credits

Applies data science and/or data engineering skills in a professional work setting. Arranges assignments and projects with cooperating organizations and agencies.
Registration Restrictions: Graduate standing and instructor approval
Crosslisted With: EE A695 and GIS A695

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 A698A Project 3 Credits

Arranges a project among the advisor, graduate advisory committee and student to solve a practical computer science or computer engineering problem.
Special Note: May be repeated once for credit.
Registration Restrictions: Graduate standing or instructor approval

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.