Main Content
Students must complete 25 additional graded credits of 300-level or 400-level courses chosen from the Computer Science & Systems program (excluding TCSS 390).
For these 25 elective credits, students must complete:
- 5 credits from the following approved design electives: TCSS 437, 445, 450, 452, 460, 461, 465, or 491
- An additional 10 credits of 300- or 400-level TCSS electives, and
- An additional 10 credits of 400-level TCSS electives.
Develops student understanding of how compliers translate high level programming languages into assembly language. Includes specifying programming language syntax, building data structures, generating assembly code, and implementing a complier for a small high-level language.
Prerequisite: minimum grade of 2.0 in both TCSS 342 and TCSS 371.
Examines the fundamental concepts of operating systems and how they function. Includes process management, file systems, concurrency, inter-process communication, graphical interfaces, and security.
Prerequisite: minimum grade of 2.0 in TCSS 372; and minimum grade of 2.0 in TCSS 380.
Computer network architectures and protocol layers, including LANs, MANs, and WANs; OSI protocol TCP/IP, routing, congestion, and flow control; data compression; interface between the network and the program (e.g., sockets, ports, mailboxes), security issues (including authentication and authorization, encryption), distributed file systems, and remote procedure calls. Course overlaps with: T INFO 250 and CSS 431.
Prerequisite: a minimum grade of 2.0 in TCSS 360; a minimum grade of 2.0 in TCSS 422.
Covers cryptographic methods including public and private key algorithms. Examines protocols that utilize such methods, such as secure email, digital signatures, authorization, e-voting, and electronic cash. Includes lab component for demonstration of security techniques such as firewalls, intrusion detection systems, and virtual private networks.
Prerequisite: a minimum grade of 2.0 in TCSS 321 and TCSS 325
Introduction to the uses of intelligence theories, techniques, and tools. Foundational material includes search, knowledge representation, machine learning, and planning. Artificial intelligence techniques applied to practical problems in areas such as control systems, optimization, scheduling, and classification.
Course overlaps with: CSE 415; CSE 416/STAT 416; CSE 473; CSS 382; and CSS 486. Prerequisite: a minimum grade of 2.0 in TCSS 343.
Explores algorithmic design options for motion control, navigation, and obstacle avoidance in mobile autonomous robots. Introduces pertinent principles from artificial intelligence and embedded real-time systems. Students construct robots from kits and program them to demonstrate sophisticated behaviors.
Prerequisite: a minimum grade of 2.0 in TCSS 360; a minimum grade of 2.0 in TCSS 422.
Covers languages, finite automata, regular expressions, context-free grammars, and other automata such as pushdown store machines and Turing machines. Includes models of computation, computable and non-computable functions, non-determinism, space and time complexity, tractable and intractable functions, non-determinism, space and time.
Prerequisite: a minimum grade of 2.0 in TCSS 342.
Fundamental concepts, system organization, and implementation of database systems. Methods for obtaining requirements and designing database systems; differences between hierarchical, relational, and network database designs; file organizations and data structures; structured query language (SQL); query optimization; database design; concurrency control; security; issues involving distributed database systems.
Prerequisite: a minimum grade of 2.0 in TCSS 342.
Covers the internals of a database system and the principles of building a database engine, including buffer management, query execution and optimization, and transaction management. Provides hands-on experience on the internals of one of the commercial database management systems as a case study.
Course overlaps with: CSE 444. Prerequisite: TCSS 445.
Covers mobile programming principles. Explores application life cycle, user interfaces, data management, security basics, memory management, localization, and web services.
Prerequisite: a minimum grade of 2.0 in TCSS 360.
Examines human-centered design of interactive systems. Focuses on understanding user needs, brainstorming, sketching, choosing from among design alternatives, prototyping, usability testing, representing, communicating, and critiquing designs.
Prerequisite: a minimum grade of 2.0 in TCSS 325; and either a minimum grade of 2.0 in TCSS 305, or a minimum grade of 2.0 in T INST 312.
Introduces methods for supervised and unsupervised machine learning, such as decision trees, random forests, boosted decision trees, logistic regression, neural networks, deep learning, clustering, and association rule mining.
Course overlaps with: CSE 416/STAT 416. Prerequisite: a minimum grade of 2.0 in TCSS 343
Introduces fundamentals concepts and algorithms in Natural language Processing (NLP). Includes relevant background material in linguistics, mathematics, probability theory, and computer science. Covers text similarly, part of speech tagging, parsing, semantics, question answering, sentiment analysis, and text summarization.
Course overlaps with: CSE 447 and CSS 488. Prerequisite: a minimum grade of 2.0 in TCSS 343.
Introduction to the main concepts in image synthesis, modeling, and animation. Topics include displays, drawing and rendering algorithms, geometric transformations, 2- and 3D viewing, objects representation, and computer animation.
Prerequisite: a minimum grade of 2.0 in TCSS 342.
Examines the languages and techniques for internet client/server application programming. Includes languages like CGI, Perl, XML, JavaScript, and DHTML, and topics like scripts, queries, forms, data access, redirection, firewalls, proxies, hypermedia, cookies, and gateways.
Prerequisite: a minimum grade of 2.0 in TCSS 360.
Analyzes system re-engineering, domain-specific languages, generative development, system design and service-oriented architecture. Also covers how to handle legacy systems, utilize model driven software development to automate code generation and understand low to high level architectures, by using software engineering methodologies, refactoring, UML, and the Eclipse framework.
Prerequisite: TCSS 360.
Provides a broad overview of topics associated with cloud computing including fundamental principles, service delivery models, foundational and enabling technologies, architecture, design, and virtualization technology. Understanding and mastery is supported through hands-on tutorials, case studies, and a term project. Course overlaps with: CSS 436.
Prerequisite: a minimum grade of 2.0 in TCSS 360.
An examination of particular theory and practice in designing software embedded in electronic devices and controllers. Includes clocks, threads, multitasking, critical sections, monitors, scheduling, on chip and external device interfacing, communications, and fault tolerance.
Prerequisite: a minimum grade of 2.0 in TCSS 422.
Introduces basic concepts and techniques used in the analysis of biological data, as well as applications of computational techniques in biological applications. Students will learn biology concepts and vocabulary. The programming language R primarily will be used.
Prerequisite: TCSS 343; recommended: No background in biology is required.
Study and comparison of several programming languages in regards to data structures, operations, notation, and control. Examines programming paradigms, implementation strategies, programming environments, and programming style.
Prerequisite: minimum grade of 2.0 in both TCSS 342 and TCSS 333.
Discusses the theoretical and practical issues surrounding computer security and data protection. Explores formal models of encryption and authentication; operating system and network security; programming and vulnerabilities analysis.
Prerequisite: a minimum grade of 2.0 in TCSS 325; and a minimum grade of 2.0 in TCSS 342.
Covers how to code defensively so software is resistant to attack. Examines input validation tools and techniques, cryptography tools to secure sensitive data, how to mitigate common web-based attacks, defense against different types of injection attacks, threat modeling and assessment, and current trends and events in software security. Course overlaps with: CSS 477.
Prerequisite: a minimum grade of 2.0 in TCSS 342; and a minimum grade of 2.0 in TCSS 371.
Covers basic concepts of cryptography, including authentication, public key cryptography, and digital signatures. Additionally, it covers modern definitions of security, implementation aspects of cryptographic schemes and their use in computer networks and the internet.
Prerequisite: a minimum grade of 2.0 in either TCSS 321, TMATH 300, or TMATH 308.
Examines current topics and issues associated with computing and software systems.
Develop large-scale software projects integrating elements from advanced visualization, real-time interaction, artificial intelligence, networking, and databases with diverse student teams. The software project is self-designed and self-directed by the student team, typically in the area of game design, but potentially from other areas of simulation.
Prerequisite: a minimum grade of 2.0 in TCSS 360.
Includes Internship (TCSS 497), Directed Readings (TCSS 498) and Undergraduate Research (499). For more information, including required forms and documentation, can be found on our Undergraduate Resources page.
No more than 10 credits of Independent Study can be applied towards your degree.