Skip to Content

Course Search Results

  • 3.00 Credits

    Prerequisite(s): Matriculation into Computer Science or Software Engineering, and University Advanced Standing. Develops and reinforces ability to write and mathematically analyze foundational computer algorithms. Includes formalizing NP-completeness, divide and conquer strategies, greedy algorithms, dynamic programming, backtracking, branch and bound, approximation algorithms and multicore parallelization.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): CS 2420 and University Advanced Standing. Matriculation if Computer Science or Software Engineering major.. Introduces the Rust programming language. Provides an overview of common programming concepts and explores specific Rust topics in depth such as: value ownership, structures, enumerations, pattern matching, generics, strings, collections, error handling, iterators, closures, asynchronous programming and concurrency. Provides practical experience in writing programs in the Rust programming language through individual and group assignments.
  • 3.00 Credits

    Prerequisite(s): CS 2370, (CS 2810 or ECE 4700), matriculation to computer science or software engineering, and University Advanced Standing. Teaches C++ programming in a production environment, emphasizing mastery of the standard C++ library. Covers the following topics in-depth: const correctness, operator overloading, exception handling, exception-safe design, programming with assertions, automated unit testing, advanced memory management, generic programming with templates, containers, iterators, algorithms, concurrency, and functional programming. Introduces library development, common idioms, and other advanced topics. Emphasizes accepted software engineering practices.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): CS 2420, (CS 2550 or DWDD 2720) matriculation into the Computer Science or Software Engineering program if a Computer Science or Software Engineering major, and University Advanced Standing. Covers modern JavaScript features of functional programming, not JavaScript programming limited to the browser. Covers rest/spread operators, string interpolation, regular expressions, object property shorthand, computed properties, method properties, destructuring assignments using object and array matching, module export/import, classes & inheritance, promises, iterators, generators, map/set, reflection, localization & formatting. Introduces common idioms and design patterns. Emphasizes accepted software engineering practices.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): University Advanced Standing. Introduces and explores state-of-the-art programming languages and concepts such as language-specific syntax, operational semantics, libraries, idioms, integrated development environments, and debugging techniques. Demonstrates language concepts by developing and writing programs. May only be repeated for additional credit in another computer language with prior written departmental approval.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): University Advanced Standing. Explores the analysis, design, and implementation of User Interfaces. Delves into all aspects of the user experience while interacting with computer systems, including cognitive, social, and emotional aspects of the user experience and methodical interaction design. Teaches how to observe users, collect requirements, design user experiences, create prototypes for customers and how to evaluate the effectiveness of any user interface. Includes both individual and group work.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): (CS 3250 or CS 3260 or CS 3270 or CS 3370 or CS 3380) and University Advanced Standing. Gives students familiarity with modern principles and practices of software design. Emphasizes design patterns, including their motivation and the design principles on which they are based.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): CS 3060 and University Advanced Standing.. Introduces several different parallel programming paradigms. Demonstrates the creation of parallel software using a variety of abstractions. Compares the relative advantages of different paradigms and abstractions for different tasks.
  • 3.00 Credits

    Prerequisite(s): CS 2300, CS 2420 and University Advanced Standing. Introduces the underlying theories of Relational Database Management Systems (RDBMS) as well as their practical use retrieving data using both embedded SQL and relational algebra. Implements queries that start from simply joining, selecting, and projecting data, then progresses to more complex data retrieval techniques that require the use of set operations, sub-queries, and group by having clauses. Discusses entity-relationship (ER) modeling, creating a RDBMS from an ER model, B+ Trees, ACID transactions, normalization, locking, concurrency issues, and alternatives to an RDBMS.. Lab access fee of $45 for computers applies.
  • 3.00 Credits

    Prerequisite(s): CS 3520 and University Advanced Standing. Covers advanced relational databases and issues related to managing non-relational data sets. Has two major components: (1) advances knowledge in relational database and skills in using SQL and database indexing; and (2) introduces NoSQL databases such as a document-oriented database, key-value database, column-oriented database, graph database, and Hadoop system and data warehousing. Justifies the need for NoSQL databases, and shows how they are implemented in database systems. Presents criteria that decision makers should consider when choosing between relational and non-relational databases and techniques for selecting the NoSQL database that best addresses specific use cases.