2421 Systems I: Introduction to Low-Level Programming and
Computer Organization U
Introduction to computer architecture at machine and assembly language level; pointers and addressing; C programming at machine level; computer organization.
Prereq: 1232, 1233, 2231, or 321, and 2321, Math 2566, or 366. Not open to students with credit for 360.
4
2431 Systems II: Introduction to Operating Systems U
Introduction to operating system concepts: process, CPU scheduling, memory management, file system and storage, and multi-threaded programming.
Prereq: 2451 or 459.21, and 2421, 360, or ECE 2560 (265). Not open to students with credit for 5431 (660).
3
2451 Advanced C Programming U
Advanced C features for students with significant programming experience in another language.
Prereq: 2221 or 222. Concur: 2231 or 321. Not open to students with credit for 2421.
2
2501 Social, Ethical, and Professional Issues in Computing U
Social, ethical, and professional issues facing computing professionals; ethical principles; discussion of case studies.
Prereq: 1222, 1223, 2231, 214, 222, or 230, and 2321 or Math 366, and Gen Ed Writing Level 2. Not open to students with credit for 5501 (601).
1
3231 Software Engineering Techniques U
Software engineering issues, techniques, methodologies and technologies; software lifecycle activities: requirements analysis, architecture, design, testing, deployment, maintenance; project management; enterprise software systems; frameworks.
Prereq: 3901 or 3902 or 3903. Not open to students with credit for 5231 (757).
3
3232 Software Requirements Analysis U
Information systems analysis; object-oriented analysis models and tools; use cases, system modeling using UML; requirements specification development; term project.
Prereq: 3241 or 3901 or 3902 or 3903 (560) or 5241 (670). Not open to students with credit for 5232 (616).
3
3241 Introduction to Database Systems U
Database systems use, logical design, entity-relationship model, normalization, query languages and SQL, relational algebra and calculus, object relational databases, XML, active databases; database design project.
Prereq: 2133 or 2231 or 2233 (314) or 321, and 2321 or Math 2366 (366). Not open to students with credit for 5241 (670).
3
3321 Automata and Formal Languages U
Machine-based and grammatical models of computation; finite automata and regular languages, pushdown automata and context-free languages, Turing machines; non- determinism; Church's Thesis.
Prereq: 2231 or 321, and 2421 or 360, and 2331 or Math 566. Not open to students with credit for 5321 (625).
3
3341 Principles of Programming Languages U
Formal languages and grammars; recursive descent parsing; data types, expressions, control structures, parameter passing; compilers and interpreters; memory management; functional programming principles.
Prereq: 2231, 2331 (680), and 2421, and 3901 (560), 3902, or 3903. Not open to students with credit for 5341 (655).
3
3421 Introduction to Computer Architecture U
Organization of hardware and software in modern computer systems, including instruction set design, processor control, ALU design, pipelining, multicores and accelerators, and memory subsystem design.
Prereq: 2231 or 321, and 2421, 2560, 265, or 360, and 2000 or 261. Not open to students with credit for 5421 (675.01) or 675.02.
3
3461 Computer Networking and Internet Technologies U
Computer networks, communication protocols, Internet TCP/IP and applications, wireless communications and network security.
Prereq: 2451, and 2421 or ECE 2560 (265). Concur: 2431. Not open to students with credit for 5461 (677).
3
3521 Survey of Artificial Intelligence I: Basic Techniques U
Survey of basic concepts and techniques in artificial intelligence, including problem solving, knowledge representation, and machine learning.
Prereq: 2331, or 222 and Math 366, or Sr standing. Not open to students with credit for 5521 (630).
3
3541 Computer Game and Animation Techniques U
Fundamental algorithms and mathematics in production of computer animation and video games, emphasizing control and rendering of animated characters.
Prereq: 3901 or 3902 or 3903 (560). Not open to students with credit for 5541 (683).
3
3901 Project: Design, Development, and Documentation of
Web Applications U
Intensive group project involving design, development, and documentation of a web application; client-side and server-side scripting; communication skills emphasized; builds programming maturity.
Prereq: 2231 or 321, and 2321 or Math 366, and CSE 2421, 360, or ECE 2560 (265), and CSE 2451, 459.21, or 459.22, and second level writing course.
4
3902 Project: Design, Development, and Documentation of
Interactive Systems U
Intensive group project involving design, development, and documentation of an interactive software system, a 2D interactive game; communication skills emphasized; builds programming maturity.
Prereq: 2231 or 321, and 2321 or Math 366, and 2421, 360, or ECE 2560 (265), and CSE 2451, 459.21, or 459.22, and second level writing course.
4
3903 Project: Design, Development, and Documentation of
System Software U
Intensive group project involving design, development, and documentation of system software including an assembler and a linking loader; communication skills emphasized; builds programming maturity.
Prereq: 2231 or 321; and 2321 or Math 366; and CSE 2421 or (CSE 360, ECE 2560, or 265 and CSE 2451, 459.21, or 459.22); and Second Writing course. Not open to students with credit for 560.
4
4191 Professional Practice in Industry U
Preparation and submission of a comprehensive report based on actual employment experience in a co-op job in industry.
Prereq: Permission of the CSE Advising Office. Repeatable to a maximum of 8 completions. This course is progress graded (S/U).
0
4193 Individual Studies in Computer Science and
Engineering U
Designed to give the student an opportunity to pursue special studies not otherwise offered. Prereq: Permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
4193H Individual Studies in Computer Science and
Engineering U
Designed to give the student an opportunity to pursue special studies not otherwise offered. Prereq: Honors standing, and permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
4194 Group Studies in Computer Science and Engineering U
Designed to give the student an opportunity to pursue special studies not otherwise offered. Prereq: Permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions.
1 - 10
4194H Group Studies in Computer Science and Engineering U
Designed to give the student an opportunity to pursue special studies not otherwise offered. Prereq: Honors standing, and permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions.
1 - 10
4251 The UNIX Programming Environment U
Introduction to the UNIX programming environment including: shell programming (csh); regular expressions; makefiles; grep, sed, and awk programming languages.
Prereq: 2231 or 321. Not open to students with credit for 459.11. This course is graded S/U.
1
4252 Programming in C++ U
Syntax and pragmatics of C++ programming; C++ types, arrays, classes, pointers; objects and classes; compile-time vs. run-time picture; inheritance; template classes.
Prereq: 2231. Not open to students with credit for 459.22. This course is graded S/U.
1
4253 Programming in C# U
C# programming for students well-versed in programming with another object-oriented language.
Prereq: 2231. Not open to students with credit for 459.24. This course is graded S/U.
1
4254 Programming in Lisp U
Lisp programming for students well-versed in programming with another language. Prereq: 2231. Not open to students with credit for 459.31. This course is graded S/U.
1
4255 Programming in Perl U
Syntax and pragmatics of Perl programming; Perl mechanisms for text and file processing, scripting, client-server programming, etc.; powerful ways to combine these mechanisms. Prereq: 2231, 2331, and 2421. Not open to students with credit for 459.51. This course is graded S/U. Cross-listed in ISE 5811.
1
4471 Information Security U
Introduction to security of digital information; threats and attacks; regulations; risk management; attack detection and response; cryptography; forensics; technical training and certifications.
Prereq: 2231 and 2321, or 321. Not open to students with credit for 551.
Computer Science and Engineering 115
4998 Undergraduate Research in Computer Science and
Engineering U
Opportunity for undergraduate student to conduct research in Computer Science and Engineering.
Prereq: Permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
4998H Undergraduate Research in Computer Science and
Engineering U
Opportunity for undergraduate student to conduct research in Computer Science and Engineering.
Prereq: Honors standing, and permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
4999 Computer Science and Engineering Research for
Thesis U
Supervised research and project work arranged individually.
Prereq: Permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
4999H Computer Science and Engineering Research for
Thesis U
Supervised research and project work arranged individually for honors students.
Prereq: Honors standing, and permission of instructor. Repeatable to a maximum of 10 cr hrs or 10 completions. This course is graded S/U.
1 - 10
5022 Software I: Software Components U G
Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation. Previous programming experience in any language required. Prereq: At least one term of Calculus. Not open to students with credit for 2221, 2231, 4221, 321, or 502. Not open to students enrolled in a CSE or CIS major.
3
5023 Software II: Software Development and Design U G
Data representation using hashing, search trees, and linked data structures; algorithms for sorting; using trees for language processing; component interface design; best practices in Java.
Prereq: 2221 or 5022. Not open to students with credit for 2231, 2231.01, 321, or 421.
3
5052 Survey of Artificial Intelligence for Non-Majors U G
Survey of the basic concepts and techniques in artificial intelligence, including problem solving, knowledge representation, and machine learning.
Prereq: 1211, 1221, 1222, 1223, or 2221, or Grad standing. Not open to students with credit for 3521 (630), 4521, or 5521, or students enrolled in a CSE or CIS major.
3
5231 Software Engineering Techniques U G
Software engineering issues, techniques, methodologies and technologies; software lifecycle activities: requirements analysis, architecture, design, testing, deployment, maintenance; project management; enterprise software systems; frameworks.
Prereq: 3901 or 3902 or 3903 (560). Not open to students with credit for 3231 (757).
2
5232 Software Requirements Analysis U G
Information systems analysis; object-oriented analysis models and tools; use cases, system modeling using UML; requirements specification development; term project.
Prereq: 3241 or 3901 or 3902 or 3903 (560) or 5241 (670). Not open to students with credit for 3232 (616).
2
5234 Distributed Enterprise Computing U G
Current application and middleware frameworks for distributed enterprise computing; XML; Enterprise Java; SOAP and REST web services; AJAX and JSON; enterprise service bus; Hadoop; mobile computing.
Prereq: 2431 or 5431 (660). Not open to students with credit for 769.
3
5235 Applied Enterprise Architectures and Services U G
Modeling/analysis of complex enterprise architectures; enterprise patterns (workflow, broker, warehousing); methods for service performance (lean, ontologies, data mining, etc.); emerging topics in semantic cyber-infrastructures, social computation.
Prereq: 5911 (758 and 762), 5912 (786), 5913 (682), 5914 (731), 5915 (772), or 778.
3
5236 Mobile Application Development U G
Mobile application development frameworks; Architecture, design and engineering issues, techniques, methodologies for mobile application development.
Prereq: 3901 or 3902 or 3903 (560).
3
5239 Intermediate Studies in Software Engineering U G
Intermediate-level topics in software engineering. Repeatable to a maximum of 12 cr hrs.
2
5241 Introduction to Database Systems U G
Database systems use; logical design; entity-relationship model; normalization; query languages and SQL; relational algebra and calculus; object relational databases; XML; active databases; database design project.
Prereq: 2133 or 2231 or 2233 (314) or 321, and 2321 or Math 2366 (366). Not open to students with credit for 3241 (670).
2
5242 Advanced Database Management Systems U G
Transaction management; query processing and optimization; organization of database systems, advanced indexing, multi-dimensional data, similarity-based analysis, performance evaluation, new database applications.
Prereq: 3241. Not open to students with credit for 770.
3
5243 Introduction to Data Mining U G
Knowledge discovery, data mining, data preprocessing, data transformations; clustering, classification, frequent pattern mining, anomaly detection, graph and network analysis; applications.
Prereq: 3241 or 5241, and 2331, 5331, Stat 3301, or ISE 3200. Not open to students with credit for 674.
3
5245 Introduction to Network Science U G
Introduction to Network Science; Global and Local Network Measures; PageRank; Community Discovery Algorithms; Network Models; Understanding the role of network analysis in Web and Social network applications.
Prereq: 2331.
3
5249 Intermediate Studies in Databases U G
Intermediate-level topics in databases. Repeatable to a maximum of 12 cr hrs.
2
5321 Automata and Formal Languages U G
Machine-based and grammatical models of computation; finite automata and regular languages, pushdown automata and context-free languages, Turing machines; non- determinism; Church's Thesis; halting problem.
Prereq: 2231 or 321, and 2421 or 360, and 2331 or Math 566. Not open to students with credit for 3321 (625).
2
5329 Intermediate Studies in Computation Theory U G
Intermediate-level topics in computation theory. Repeatable to a maximum of 12 cr hrs.
2
5331 Foundations II: Data Structures and Algorithms U G
Design/analysis of algorithms and data structures; divide-and-conquer; sorting and selection, search trees, hashing, graph algorithms, string matching; probabilistic analysis; randomized algorithms; NP-completeness.
Prereq: 2231 or 321, and 2321 or Math 366, and 2566 (566), and Stat 3470 (427). Not open to students with credit for 2331 (680).
2
5339 Intermediate Studies in Algorithms U G
Intermediate-level topics in algorithms. Repeatable to a maximum of 12 cr hrs.
2
5341 Principles of Programming Languages U G
Formal languages and grammars; recursive descent parsing; data types, expressions, control structures, parameter passing; compilers and interpreters; memory management; functional programming principles.
Prereq: 2231, 2331 (680) and 2421, and 3901 (560), 3902, or 3903. Not open to students with credit for 3341 (655).
2
5343 Compiler Design and Implementation U G
Lexical and syntax analysis using compiler generation tools; type checking; intermediate code; control-flow analysis; dataflow analysis; code optimizations; code generation; compiler project.
Prereq: 3901 (560), 3902, or 3903, and 3341 (655). Not open to students with credit for 756.
3
5349 Intermediate Studies in Programming Languages U G
Intermediate-level topics in programming languages. Repeatable to a maximum of 12 cr hrs.
2
5351 Introduction to Cryptography U G
Foundations of cryptography; mathematical formulations/proofs of security goals; theory and practical constructions of encryption schemes, MACs, digital signatures; zero-knowledge proof systems; cryptographic protocols.
Prereq: 2331 (680), 5331, Math 4573 (573), or 4580 (580), and Stat 3460 (427) or 3470. Not open to students with credit for 723 or 794Q.
3
5359 Intermediate Studies in Cryptography U G
Intermediate-level topics in cryptography. Repeatable to a maximum of 12 cr hrs.
2
5361 Numerical Methods U G
Numerical methods for scientific computation: computer arithmetic, rounding errors, machine precision, machine representation, root-finding, interpolation, integration, linear systems, splines, smoothing, curve-fitting, linear programming.
Prereq: 2231, and Math 2568 (268) or 571, and 1151 (151). Not open to students with credit for 541.
3
5421 Introduction to Computer Architecture U G
Organization of hardware and software in modern computer systems, including instruction set design, processor control, ALU design, pipelining, multicores and accelerators, and memory subsystem design.
Prereq: 2231 or 321, and 2421 (360) or ECE 2560 (265), and 2000 or 261. Not open to students with credit for 3421 (675.01 or 675.02).