Search | Directories | Reference Tools
UW Home > Discover UW > Student Guide 
 | Glossary UW Bothell Course Descriptions UW Seattle Course Descriptions
Search course descriptions with Google Custom Search:

UW TACOMA
SCHOOL OF ENGINEERING & TECHNOLOGY - UWT
COMPUTER SCIENCE & SYSTEMS - TACOMA

Detailed course offerings (Time Schedule) are available for

TCSS 101 Computer Science Principles (5) NSc, RSN
Introduces fundamental concepts of computer science and computational thinking. Includes logical reasoning; problem solving; operation of computers and networks; effective searching; and ethical, legal, and social aspects of information technology.
View course details in MyPlan: TCSS 101

TCSS 141 Programming for All (5)
Introduces programming fundamentals for students with no prior programming experience. Includes design and implementation of small programs using algorithmic thinking, problem solving and program structures. Recommended: a minimum grade of 2.0 in either TMATH 116, TMATH 120, or MATH 120, a score of 120-180 on MPT-AS test, or a score of 2 on AP MATH exam (AB or BC).
View course details in MyPlan: TCSS 141

TCSS 142 Programming Principles (5) NSc, RSN
Introduces the design and implementation of procedural programs. Includes an introduction to program structure, data types, arrays, and objects. Prior experience in programming is expected. Prerequisite: a minimum grade of 2.0 in either TMATH 116, TMATH 120, TMATH 124, TMATH 125, MATH 120, MATH 124, or MATH 125, a score of 120-180 on MPT-AS test, or 2 on AP Computer Science exam A. Offered: AWSp.
View course details in MyPlan: TCSS 142

TCSS 143 Fundamentals of Object-Oriented Programming Theory and Application (5) NSc, RSN
Develops fundamental concepts and techniques for analysis, design, and implementation of computer programs using an object-oriented language. Includes recursive techniques, use of abstract data types (ADTs), and introduction to simple data structures. Prerequisite: a minimum grade of 2.0 in either TCSS 142 or CSE 142. Offered: AWSp.
View course details in MyPlan: TCSS 143

TCSS 241 Python Programming (2)
Introduces Python as a programming language to students who are proficient in another high-level programming language. Prerequisite: a minimum grade of 2.0 in TCSS 143.
View course details in MyPlan: TCSS 241

TCSS 242 JavaScript Programming (2)
Introduces JavaScript as a programming language to students who are proficient in another high-level programming language. Prerequisite: a minimum grade of 2.0 in TCSS 143.
View course details in MyPlan: TCSS 242

TCSS 243 C# Programming (2)
Introduces C# as a programming language to students who are proficient in another high-level programming language. Prerequisite: a minimum grade of 2.0 in TCSS 143.
View course details in MyPlan: TCSS 243

TCSS 244 C++ Programming (2)
Introduces C++ as a programming language to students who are proficient in another high-level programming language. Prerequisite: a minimum grade of 2.0 in TCSS 143.
View course details in MyPlan: TCSS 244

TCSS 305 Programming Practicum (5) NSc, RSN
Provides a practicum in program design and development. Programming practice on a medium-scale, object-oriented application, consolidating prior programming principles and expanding knowledge of application design.
View course details in MyPlan: TCSS 305

TCSS 321 Discrete Structures I (5) NSc, RSN
Introduces definitions and tools for reasoning about discrete mathematical objects useful for computer professionals, including set theory, propositions and predicates, Boolean algebra, sequences, enumeration, algorithms, methods of proof, and relations.
View course details in MyPlan: TCSS 321

TCSS 322 Discrete Structures II (5)
Covers advanced topics in discrete mathematics useful for computing professionals, including basic counting techniques, discrete probability, recurrence relations, graphs, trees, and models of computation such as finite state machines and Turing machines. Prerequisite: a minimum grade of 2.0 in TCSS 321 and either TMATH 110 or TMATH 390.
View course details in MyPlan: TCSS 322

TCSS 325 Computers, Ethics, and Society (5) SSc/A&H
Analyzes social, political, and ethical implications of computer and information technologies. Covers Western ethical theories, professional ethics, and diverse topics in computer ethics. Emphasizes writing and the construction of ethical arguments.
View course details in MyPlan: TCSS 325

TCSS 333 C for System Programming (5)
Introduces C as a language for exploring low-level machine characteristics and interacting with operating system services. Includes bit models for numeric data, pointers, arrays and structures, memory allocation, development of multiple file programs, libraries, system calls, and tools for compiling and linking.
View course details in MyPlan: TCSS 333

TCSS 342 Data Structures (5) RSN
Covers data structures and classical algorithms with an emphasis on implementing them in high-level programming languages. Includes sequential and linked lists, binary trees, heaps, B-trees, hash tables, graphs, and algorithms for searching and sorting. Concentrates on developing implementations, understanding their performance, and estimating their potential effectiveness in applications. Prerequisite: minimum grade of 2.0 in either TCES 203 or TCSS 305; and TCSS 321.
View course details in MyPlan: TCSS 342

TCSS 343 Design and Analysis of Algorithms (5) NSc
Develops competencies associated with problem-solving, algorithms, and computational models. Explores algorithms analysis and design, and computational complexity. Includes efficient algorithms, models of computation, correctness, time and space complexity, NP-complete problems, and undecidable problems. Prerequisite: minimum grade of 2.0 in TCSS 342
View course details in MyPlan: TCSS 343

TCSS 360 Software Development and Quality Assurance Techniques (5) NSc
Covers how to build quality software using standard development practices and representations. Includes writing and using requirements, designing and representing computational units, rigorous program testing, reviews and inspections, and working effectively in teams. Prerequisite: a minimum grade of 2.0 in TCSS 342; 10 credits of writing coursework.
View course details in MyPlan: TCSS 360

TCSS 371 Machine Organization (5)
Develops the hardware basis for computing systems, and the relationship between hardware and software. Covers number representations, digital logic, machine organization, instruction set architecture, assembly language, and an introduction to the translation of high-level languages into assembly instructions. Offered: AWSp.
View course details in MyPlan: TCSS 371

TCSS 372 Computer Architecture (5)
Covers the microarchitecture level of machine design and advanced architecture features for perform enhancement. Topics include computer performance measures, microarchitecture instructions, CPU design (datapath, pipelines, control unit, instruction parallelism), memory hierarchy, cache memory, virtual memory, parallel processing and multicore architectures. Prerequisite: a minimum grade of 2.0 in TCSS 371.
View course details in MyPlan: TCSS 372

TCSS 380 Fundamentals of Programming Language Concepts (5)
Introduces fundamental programming language concepts common to all programming languages, including abstraction mechanisms, types, scoping, binding, control flow, subprograms, and concurrency. Compares imperative and declarative models using multiple programming languages. Examines implementation strategies, memory model, and programming environments. Prerequisite: a minimum grade of 2.0 in TCSS 342; and a minimum grade of 2.0 in TCSS 371.
View course details in MyPlan: TCSS 380

TCSS 390 Undergraduate Seminar in CSS (2, max. 12)
Enhances problem-solving skills. Topics and approaches vary. Includes lectures and problem sessions in mathematics, programming, problem solving, and CSS applications. Does not carry credit toward the CSS degree Credit/no-credit only.
View course details in MyPlan: TCSS 390

TCSS 421 Compiler Construction (5)
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.
View course details in MyPlan: TCSS 421

TCSS 422 Computer Operating Systems (5) RSN
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.
View course details in MyPlan: TCSS 422

TCSS 430 Networking and Distributed Systems (5)
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. Prerequisite: a minimum grade of 2.0 in TCSS 360; a minimum grade of 2.0 in TCSS 422.
View course details in MyPlan: TCSS 430

TCSS 431 Network Security (5)
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
View course details in MyPlan: TCSS 431

TCSS 435 Artificial Intelligence and Knowledge Acquisition (5)
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. Prerequisite: a minimum grade of 2.0 in TCSS 343.
View course details in MyPlan: TCSS 435

TCSS 437 Mobile Robotics (5)
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.
View course details in MyPlan: TCSS 437

TCSS 440 Formal Models in Computer Science (5)
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.
View course details in MyPlan: TCSS 440

TCSS 445 Database Systems Design (5) RSN
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.
View course details in MyPlan: TCSS 445

TCSS 446 Database Systems Internals (5)
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. Prerequisite: TCSS 445.
View course details in MyPlan: TCSS 446

TCSS 450 Mobile Application Programming (5)
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.
View course details in MyPlan: TCSS 450

TCSS 452 Human-Computer Interaction (5)
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.
View course details in MyPlan: TCSS 452

TCSS 455 Introduction to Machine Learning (5)
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. Prerequisite: TCSS 343, or permission from instructor.
View course details in MyPlan: TCSS 455

TCSS 456 Introduction to Natural Language Processing (5)
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. Prerequisite: a minimum grade of 2.0 in TCSS 343.
View course details in MyPlan: TCSS 456

TCSS 458 Computer Graphics (5) NSc
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.
View course details in MyPlan: TCSS 458

TCSS 460 Client/Server Programming for Internet Applications (5)
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.
View course details in MyPlan: TCSS 460

TCSS 461 Advanced Software Engineering (5)
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.
View course details in MyPlan: TCSS 461

TCSS 462 Cloud Computing (5)
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. Prerequisite: a minimum grade of 2.0 in TCSS 360.
View course details in MyPlan: TCSS 462

TCSS 465 Embedded Real-Time System Programming (5)
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.
View course details in MyPlan: TCSS 465

TCSS 478 Fundamentals in Bioinformatics (5)
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.
View course details in MyPlan: TCSS 478

TCSS 480 Comparative Programming Languages (5)
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.
View course details in MyPlan: TCSS 480

TCSS 481 Computer Security (5)
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.
View course details in MyPlan: TCSS 481

TCSS 483 Secure Coding Principles (5)
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. Prerequisite: a minimum grade of 2.0 in TCSS 342; and a minimum grade of 2.0 in TCSS 371.
View course details in MyPlan: TCSS 483

TCSS 487 Cryptography (5)
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.
View course details in MyPlan: TCSS 487

TCSS 488 Coding Theory (5)
Covers electronic communication over noisy channels, and digital storage on various types of media. Describes constructions of modern error-correction codes, including Reed Solomon, Golay, and BCH codes. Also covers computational aspects, complexity of encoding/decoding algorithms, their implementations and their uses in modern communication systems. Prerequisite: minimum grade of 2.0 in TMATH 308 or TCSS 321.
View course details in MyPlan: TCSS 488

TCSS 490 Special Topics in Computing and Software Systems (5, max. 10) RSN
Examines current topics and issues associated with computing and software systems.
View course details in MyPlan: TCSS 490

TCSS 491 Game and Simulation Design (5)
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.
View course details in MyPlan: TCSS 491

TCSS 496 Portfolio Based Learning (1-3, max. 6)
Create a portfolio that spans across the junior and senior years of bachelor's degree to capture the learning from the program's coursework, emphasizing ties in the learning with the overall career goal. Work with other students in the cohort on projects to build team portfolios. Embark on field trips and interact with invited industry and career professionals to explore non-traditional Computer Science pathways or careers. Offered: AWSp.
View course details in MyPlan: TCSS 496

TCSS 497 Internship in Computing and Software Systems (1-10, max. 10)
Project as delineated in a contract between student, faculty advisor, and community sponsor. Prerequisite: minimum grade of 2.0 in TCSS 360.
View course details in MyPlan: TCSS 497

TCSS 498 Directed Readings in Computing and Software Systems (1-5, max. 10)
Readings as specified in agreement with faculty. Prerequisite: TCSS 360.
View course details in MyPlan: TCSS 498

TCSS 499 Undergraduate Research in Computing and Software Systems (1-10, max. 10)
Design and implementation of a research study as specified in a contract with faculty. Prerequisite: TCSS 360.
View course details in MyPlan: TCSS 499

TCSS 501 Analysis of Algorithms and Data Structures (3)
Introduces techniques in algorithm analysis and data structures including time space complexity, and big O notation. Introduces fundamental data structures: array lists, linked lists, queues, stacks, trees and hash tables and algorithms for sorting, selection, binary search and recursion with emphasis on implementation in a high-level programming language. Prerequisite: TCSS 142 and TCSS 143, or equivalent.
View course details in MyPlan: TCSS 501

TCSS 502 Object Oriented Programming (3)
Introduces object-oriented programming (OOP) skills and best practices in software design including concepts of inheritance, encapsulation, abstraction, polymorphism, and software design patterns. Topics covered in algorithm analysis techniques and data structures course will be leveraged in projects. Prerequisite: TCSS 142 and TCSS 143, or equivalent.
View course details in MyPlan: TCSS 502

TCSS 503 Algorithms and Problem Solving for Software Developers (3)
Introduces advanced data structures and key algorithmic techniques used in solving software engineering problems, such as trees, graphs, breadth/depth first searches, divide and conquer, greedy algorithms and dynamic programming. Learn how to analyze a problem and incorporate advanced data structures into the software implementations. Prerequisite: TCSS 501 and TCSS 502.
View course details in MyPlan: TCSS 503

TCSS 504 Software Engineering and Development Techniques (3)
Presents the principles and theory of software engineering and development including: requirements analysis, design and prototyping, system analysis, testing, project and version management, software and system metrics, and software development processes and lifecycles. Prerequisite: TCSS 501 and TCSS 502.
View course details in MyPlan: TCSS 504

TCSS 505 Systems Programming (3)
Examines the fundamental concepts of modern operating systems and how they function. Topics covered include processes, threads, memory management, process scheduling, file systems, virtual machines and software containers. Covers the basics of the Linux operating system, bash commands, scripting, and systems programming. Prerequisite: TCSS 503 and TCSS 504.
View course details in MyPlan: TCSS 505

TCSS 506 Practical Full Stack Development (3)
Features an extended software engineering team project creating a web-based or service-oriented application. Includes topics such as databases, cloud computing, web services architectures and development. Prerequisite: TCSS 503 and TCSS 504.
View course details in MyPlan: TCSS 506

TCSS 510 Enterprise Architecture Foundations (5)
Examines foundational aspects of both enterprise and architectural thinking, including the application software to technology to solution architecture continuum, the role of EA in business and IT alignment, architectural styles and techniques for capturing and documenting architectures. Practices techniques for analyzing and reasoning about architectures.
View course details in MyPlan: TCSS 510

TCSS 511 Advanced Enterprise Architecture (5)
Examines advanced aspects of enterprise architecture practices and its application to guide and support business strategy. An EA maturity framework and governance practices are developed through a case study on applying evolving technologies - cloud, mobile, social media, big data in the EA context to solve business problems. Prerequisite: TCSS 510.
View course details in MyPlan: TCSS 511

TCSS 531 Cloud and Virtualization Systems Engineering (5)
Provides an introduction to cloud computing and virtualization - enabling multiple instances of operating systems to be run on a single physical system. Concepts include hypervisors, virtual machines, paravirtualization and virtual appliances for design of cloud computing platforms; server and desktop virtualization; storage, network, and application virtualization.
View course details in MyPlan: TCSS 531

TCSS 535 Artificial Intelligence and Knowledge Acquisition (5)
Covers foundations of artificial intelligence including intelligent agents, problem solving, searching, planning, reasoning under uncertainty and learning.
View course details in MyPlan: TCSS 535

TCSS 540 Theory of Computing (5)
Covers computational models including finite automata, regular expressions, context-free grammars, pushdown automata, Turing machines, and techniques for analyzing them. Basic computability theory and undecidability, computational complexity theory, and NP-completeness.
View course details in MyPlan: TCSS 540

TCSS 543 Advanced Algorithms (5)
Prepares students for analysis and use of advanced algorithms. Covers advanced graph, number theoretical (with applications to cryptography), one-line, approximation (with performance guarantees), and probabilistic algorithms. Covers turing machines and NP-completeness. Not available for elective credit.
View course details in MyPlan: TCSS 543

TCSS 544 Applied Linear Algebra (5)
Examines math concepts on linear algebra and linear transformation, and subjects on singular value decomposition, Fourier transforms, Wavelet transforms, and other topics. Students apply these math concepts and implement numerical solutions to problems in areas including pattern recognition, information retrieval, web search, image processing, cryptography, and machine learning.
View course details in MyPlan: TCSS 544

TCSS 545 Database Systems Design (5)
Covers fundamental database concepts; relational databases; conceptual data modeling; entity relational diagrams and UML; logical and physical design; SQL commands and queries; query optimization; Web database applications development; transaction management; distributed and object-oriented databases; data warehousing and data mining; XML query language; image and text retrieval; data storage; and indexing.
View course details in MyPlan: TCSS 545

TCSS 551 Big Data Analytics (5)
Examines a variety of techniques to perform data analytics and their extensions to big data infrastructure. Students will be able to identify mathematical foundations of data analytics, data analyses algorithms and tools. Introduces big data infrastructure, distributed computational paradigm, and distributed data analytics algorithms. Prerequisite: minimum grade of 3.0 in TCSS 343 and TCSS 445 or equivalent.
View course details in MyPlan: TCSS 551

TCSS 552 Interaction Design (5)
Examines the design of interactive products and services supporting human activity in a variety of settings. Focuses on user inquiry, sketching, prototyping, brainstorming, and usability testing. Cultivates reflective practice within a human-centered design paradigm.
View course details in MyPlan: TCSS 552

TCSS 554 Information Retrieval and Web Search (5)
Examines the basic principles and techniques used in information retrieval (IR) and web search, including keyword based search, content analysis (vector space model, probabilistic language models), link analysis (PageRank), indexing, text classification, document clustering, aggregated search, user-system interaction in IR, and evaluation of IR systems.
View course details in MyPlan: TCSS 554

TCSS 555 Machine Learning (5)
Explores learning and predictive modeling methods for data analysis, such as decision trees, instance based earning, Baysian learning, neural networks, ensemble methods, and support vector machines. Surveys fundamental concepts of learning theory.
View course details in MyPlan: TCSS 555

TCSS 556 Advanced Topics in Machine Learning (5)
Focuses on current graduate-level topics and issues associated with machine learning, including theoretical aspects of machine learning techniques as well as hands-on experience in implementing and applying them to real world applications. Prerequisite: either TCSS 555 (or equivalent), or permission from instructor.
View course details in MyPlan: TCSS 556

TCSS 558 Applied Distributed Computing (5)
Covers techniques and concepts associated with constructing software that is distributed, reliable, efficient, and extensible; programming multi-threaded applications, communication among objects on different computers, creating a server accessed by multiple clients, using common object design patterns, locating and tailoring components. Not available for elective credit.
View course details in MyPlan: TCSS 558

TCSS 559 Services Computing (5)
Covers fundamental concepts in the development of distributed software systems, cloud computing and service delivery models and the Service-Oriented Architecture (SOA). Topics include, but are not limited to, Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) service development, microservices, SOA design patterns, service coordination protocol, service composition and performance management.
View course details in MyPlan: TCSS 559

TCSS 562 Software Engineering for Cloud Computing (5)
Presents the principles of software engineering including: requirements analysis, design and prototyping, system analysis, testing, project management, software metrics, processes and lifecycles including Agile and DevOps in the context of the design and development of a distributed cloud based application.
View course details in MyPlan: TCSS 562

TCSS 564 Database Systems Internals (5)
Analyzes 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. Prerequisite: TCSS 343; TCSS 445.
View course details in MyPlan: TCSS 564

TCSS 565 Spatial Databases with Applications in Geographic Information Systems (5)
Evaluates spatial databases, and focuses on their applications in Geographic Information Systems (GIS). Covers how to describe how to represent, store, index, and process spatial objects and focus on their application in the field of Geographic Information Systems (GIS). Prerequisite: minimum grade of 3.0 in TCS 343 or equivalent.
View course details in MyPlan: TCSS 565

TCSS 569 Introduction to Cyber-Physical Systems (5)
Covers fundamentals of Cyber-Physical Systems (CPS). In addition to signals and systems, linear transforms and analysis, state machines and how to build models of hybrid systems, the course also introduces basics of embedded systems and the computation models of systems, including both software components and physical dynamics.
View course details in MyPlan: TCSS 569

TCSS 570 Introduction to Parallel Computing (5)
Covers parallel architectures, interconnection networks and embeddings; fundamental communication operations; performance and scalability metrics; parallel programming paradigms, message-passing programming in MPI, and shared-address space programming in threads; parallel algorithms for sorting, searching, matrix problems, graph problems, and dynamic load balancing. Prerequisite: TCSS 543.
View course details in MyPlan: TCSS 570

TCSS 571 Wireless and Mobile Networking (5)
Covers fundamental concepts in emerging wireless and mobile networking technologies. Topics may include networking protocols, wireless and cellular networks and other wireless advanced topics such as vehicular wireless networks, sensing, wireless sensor networks, data fusion and integration, synchronization, routing and localization.
View course details in MyPlan: TCSS 571

TCSS 573 Internet of Things (5)
Examines physical design and logical design of Internet of Things, functional blocks and architecture, protocols and communication models, enabling technologies, application domains specific to Internet of Things, smart objects, development tools, system management, cloud services, security and data analytics.
View course details in MyPlan: TCSS 573

TCSS 574 Cyber Electromagnetics (5)
Covers fundamental of EM Theory. Electromagnetic compatibility and interference. Electromagnetic intrusion and jamming. Electromagnetic hardening. Electromagnetic spectrum management. Electromagnetic Pulses (EMP). Smart-Grid and SCADA Protection. TEMPEST. Recommended: PHYS 122 and PHYS 123 or Electromagnetics Basics.
View course details in MyPlan: TCSS 574

TCSS 575 Control of Cyber-physical Systems (5)
Introduces optimal control theories. Reviews the current state of network control efforts for CPS. Studies recent development of control algorithms for CPS. Focuses on approaches to deliver fully distributed control over wireless sensor networks from control theoretic perspective. Prerequisite: TCSS 569, or permission from the instructor.
View course details in MyPlan: TCSS 575

TCSS 576 Wireless and System Security (5)
Covers fundamental concepts in wireless network security and computer system security. Exposes the students to cutting-edge research results and hands-on experiences in cybersecurity. Topics include but are not limited to: 802.11 standard and its security, and system security evaluation. Prerequisite: TCSS 430.
View course details in MyPlan: TCSS 576

TCSS 578 Virtual Reality (5)
Focuses on research studies of human-computer interactions in virtual reality. Covers a variety of topics related to virtual reality technology, including 3D programming using Unity, virtual reality application domains, interface design issues, research methods, experimental study designs, and writings of virtual reality related human-computer interaction research papers. Recommended: previous coursework in object oriented programming, human-computer interactions, and computer graphics.
View course details in MyPlan: TCSS 578

TCSS 580 Information Theory (5)
Examines entropy and other measures of information; data compression fundamentals and modern algorithms; reliable data transmission; and the channel capacity theorem for discrete memoryless and Gaussian channels. Applications to games of chance, perfect secrecy, and error correction are briefly covered. Prerequisite: TCSS 543.
View course details in MyPlan: TCSS 580

TCSS 581 Cryptology (5)
Covers simple ciphers, block and stream ciphers, attacks, public-key ciphers, electronic signature, cryptographic algorithms, and real-world examples.
View course details in MyPlan: TCSS 581

TCSS 582 Cryptographic Protocols (5)
Covers advanced topics of cryptographic protocols, including formal definitions of security, composability, zero knowledge proofs, commitment schemes, oblivious transfer, secure two-party computations and secure multi-play computations. Prerequisite: minimum grade of 3.0 in TCSS 540, TCSS 543 or TCSS 581.
View course details in MyPlan: TCSS 582

TCSS 583 Post-Quantum Cryptosystems (5)
Covers fundamentals of Shor's attack against conventional cryptography and notions of quantum-resistant cryptosystems. Includes the main lattice-based schemes for encryption, signatures, and homomorphic encryption, as well as code-based encryption, hash-based, and multivariate digital signatures. Additionally, highlights research problems and deployment issues of the technique. Prerequisite: TCSS 543.
View course details in MyPlan: TCSS 583

TCSS 584 Testing VLSI Circuits and Hardware Security (5)
Covers topics related to testing VLSI circuits and hardware security including manufacturing test fundamentals, fault modeling and simulation, automatic test pattern generation algorithms, Design-for-Testability, testability vs security, trustworthiness of integrated circuits; Counterfeit ICs; Hardware Trojans; Side-Channel attacks; Design-for-Trust. Prerequisite: TCES 330.
View course details in MyPlan: TCSS 584

TCSS 588 Bioinformatics (5)
Covers applications of computational techniques in various biological applications, including sequence analysis, systems biology, personalized medicine, and drug discovery. Focuses on machine learning methods in mining big data sources in biology. No background in biology is required. Prerequisite: TCSS 343. Offered: Sp.
View course details in MyPlan: TCSS 588

TCSS 590 Special Topics in Computing and Software Systems (1-5, max. 30)
Examines current graduate-level topics and issues associated with computing and software systems. Prerequisite: permission of instructor.
View course details in MyPlan: TCSS 590

TCSS 591 Research Seminar in Distributed Systems (1-3, max. 5)
Discusses recent developments in distributed systems, focusing on applications and advancements in the areas of distributed systems, cloud computing, and networking. Primarily consists of reading papers and surveying the latest implementation methods, tools, and frameworks enabling distributed systems. Credit/no-credit only.
View course details in MyPlan: TCSS 591

TCSS 592 Research Seminar in Bioinformatics (1-3, max. 5)
Discusses recent developments in bioinformatics, focusing on machine learning methods and integration of big biology data. Consists of reading papers, surveying the latest methods, and tools developed for high dimensional data. Credit/no-credit only.
View course details in MyPlan: TCSS 592

TCSS 593 Research Seminar in Data Science (1-3, max. 5)
Discusses recent developments in data science, focusing on applications and advances in data management and mining for data from a variety of domains. Consists of reading papers, surveying the latest tools, and techniques of data science. Credit/no-credit only.
View course details in MyPlan: TCSS 593

TCSS 594 Research Seminar in Geographic Information Systems (1-3, max. 5)
Discusses recent developments in Geographic Information Systems (GIS), focusing on applications and advances in spatiotemporal, mobile, and sensor data management. Consists of reading papers and surveying the latest tools and techniques of GIS. Credit/no-credit only.
View course details in MyPlan: TCSS 594

TCSS 595 Research Seminar in Cybersecurity (1-3, max. 5)
Discusses recent developments in cybersecurity, focusing on applications and advances in cryptology; network and systems security; and privacy and their applications to different domains. Consists of reading papers and surveying the latest tools and techniques in cybersecurity. Credit/no-credit only.
View course details in MyPlan: TCSS 595

TCSS 597 Research Seminar in Cyber Physical System (1-3, max. 5)
Discusses recent developments in the modeling analysis, security, and control of cyber-physical systems. Primarily consists of reading papers, surveying the latest hardware/software implementation methods and tools developed for cyber physical systems. Offered: AWSp.
View course details in MyPlan: TCSS 597

TCSS 598 Masters Seminar in CSS ([1-5]-, max. 5)
Surveys the canonical literature pertinent to a master's degree in CSS. Readings in research and applied computing are assigned to provide a grounding in Masters level work. Weekly discussions of topics taken from the readings. Not available for elective credit.
View course details in MyPlan: TCSS 598

TCSS 600 Independent Study or Research (*-)
Examines current topics and issues associated with computing and software systems. Prerequisite: permission of instructor.
View course details in MyPlan: TCSS 600

TCSS 700 Master's Thesis (*-)
Provides an opportunity to demonstrate comprehensive knowledge in CSS. Completes a research project led by a CSS graduate faculty advisor. Prerequisite: TCSS 543; TCSS 558; TCSS 598; permission of instructor required
View course details in MyPlan: TCSS 700

TCSS 701 INTERNSHIP (1-10, max. 10)
View course details in MyPlan: TCSS 701

TCSS 702 Design Project in Computing and Software Systems ([1-10]-, max. 10)
Provides an opportunity to demonstrate comprehensive knowledge in CSS. Develops a significant design and implementation project led by a CSS faculty graduate advisor. Prerequisite: TCSS 543; TCSS 558; TCSS 598; permission of instructor required.
View course details in MyPlan: TCSS 702

TCSS 800 Doctoral Dissertation (*)
Involves original research carried out using rigorous methods that are appropriate to the research questions. The dissertation addresses issue(s) of importance in the field while significantly contributing to the advancement of knowledge. Prerequisite: TCSS 700 and permission of instructor. Credit/no-credit only.
View course details in MyPlan: TCSS 800