Detailed course offerings (Time Schedule) are available for
To see the detailed Instructor Class Description, click on the underlined instructor name following the course description.
TCSS 142 Introduction to Object-Oriented Programming (5) NW, QSR
Introduces the design and implementation of computer programs. Includes an introduction to program structure, data types, and object-oriented design. Prerequisite: a minimum grade of 2.0 in either TMATH 120, TMATH 121, or MATH 120, a score of 154-163 on MPT-AS test, or a score of 2 on AP exam.
TCSS 143 Fundamentals of Object-Oriented Programming Theory and Application (5) NW, QSR
Develops fundamental concepts and techniques for analysis, design, and implementation of computer programs using an object-oriented language. Includes recursive techniques and simple data structures. Prerequisite: a minimum grade of 2.0 in either TCSS 142 or CSE 142.
TCSS 305 Programming Practicum (5) NW, QSR
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. Prerequisite: a minimum grade of 2.0 in either TCSS 143 or CSE 143.
TCSS 321 Discrete Structures I (5) NW, QSR
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. Prerequisite: a minimum grade of 2.0 in either TCSS 142, CSE 142, TMATH 124, or MATH 124.
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.
TCSS 325 Computers, Ethics, and Society (5) I&S/VLPA
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. Prerequisite: a minimum grade of 2.0 in either TCSS 143, CSE 143, T INFO 300, T INST 311, or T INST 312; 10 credits of writing coursework.
TCSS 342 Data Structures (5)
Covers abstract data types, design and complexity analysis of data, and usage of generic data structure libraries in high-level programming languages. Includes sequential and linked lists, binary trees and balanced binary trees, B-trees, hash tables, and heaps. Prerequisite: TCSS 305; a minimum grade of 2.0 in TCSS 321.
TCSS 343 Design and Analysis of Algorithms (5)
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: a minimum grade of 2.0 in TCSS 322; a minimum grade of 2.0 in TCSS 342; a minimum grade of 2.0 in either TMATH 124 or MATH 124.
TCSS 360 Software Development and Quality Assurance Techniques (5)
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.
Instructor Course Description: Jeffrey Weiss
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 and assembly language. Includes an introduction to C programming language and its translation into machine instructions. Prerequisite: a minimum grade of 2.0 in either TCSS 143 or CSE 143.
TCSS 372 Computer Architecture (5)
Covers the micro architecture level of machine design and advanced architecture features for performance enhancement. Subjects include bus; memory and CPU design; hardware support for operating systems; CISC/RISC architectures; and parallelism. Prerequisite: a minimum grade of 2.0 in TCSS 371.
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. Credit/no-credit only. Does not carry credit toward the CSS degree
TCSS 422 Computer Operating Systems (5)
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: a minimum grade of 2.0 in TCSS 342; a minimum grade of 2.0 in TCSS 372.
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.
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
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 both TCSS 322 and TCSS 342.
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.
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 343.
TCSS 445 Database Systems Design (5)
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.
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: minimum grade of 2.0 in TCSS 143.
TCSS 458 Computer Graphics (5) NW
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.
TCSS 460 Client/Server Programming for Internet Applications (5)
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.
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: a minimum grade of 2.0 in TCSS 342.
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: either T INST 312, which may be taken concurrently, or a minimum grade of 2.0 in both TCSS 342 and TCSS 325.
TCSS 490 Special Topics in Computing and Software Systems (5, max. 10)
Examines current topics and issues associated with computing and software systems.
TCSS 491 Computational Worlds (5)
Development of large-scale software project in advanced imaging involving computational intelligence and artificial life applied to such fields as game development or virtual reality. Students work in interdisciplinary teams that integrate several computer science areas. Advanced topics: game programming, artificial life, virtual humans, and computer animation. Prerequisite: minimum grade of 2.0 in TCSS 458.
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: TCSS 360.
TCSS 498 Directed Readings in Computing and Software Systems (1-5, max. 10)
Readings as specified in agreement with faculty. Prerequisite: TCSS 360.
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.
TCSS 523 Data Compression (5)
Covers a broad range of compression techniques, as well as their implementations in today's compression standards. Techniques include block-based codes, dictionary coding, predictive coding, vector quantization, and transform coding, including wavelets. Covers selected standards for text, image, video and audio compression.
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.
TCSS 541 Concurrency in Computation (5)
Covers the design and verification of concurrent algorithms, both for processes using shared variables and synchronization primitive and for processes using message exchange. Includes axiomatic semantics for and correctness proofs of sequential and concurrent programs, and concepts of synchronization, indivisible actions, safety, progress, and fairness.
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.
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.
TCSS 555 Data Mining (5)
Covers methods and systems for data mining and discovering knowledge from data; mining system architecture/tasks; concept learning; text/multimedia mining; decision trees; bayesian and belief networks; neural networks; case-based reasoning; cluster and multidimensional analysis; tools to build new applications; knowledge discovery.
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.
TCSS 559 Web Services (5)
Investigates a service-oriented computing paradigm for use with the Internet, web services. Includes comparisons of distributed computing paradigms, enterprise application integration, service oriented architecture, web services concepts, web services technologies, service coordination protocols, service compositions, and service applications. Prerequisite: TCSS 558.
TCSS 566 Computer-Mediated Communications (5)
Examines the uses of computer and communications technologies, including application implementations, for supporting human-to-human communications in both personal and social contexts. Includes topics from sociological and psychological aspects needed to design effective systems. Involves development of significant collaboration application and research paper.
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.
TCSS 581 Cryptology (5)
Covers simple ciphers, block and stream ciphers, attacks, public-key ciphers, electronic signature, cryptographic algorithms, and real-world examples. Prerequisite: TCSS 543.
TCSS 588 Bioinformatics (5)
Covers methods and systems for the application of computer science to biology, medicine, genomics, and proteomics; biological domain background; machine learning; statistical learning; hidden markov models; case based reasoning; neural networks; semantic approaches; evolutionary computing; stochastic grammars and linguistics; grid computing. Prerequisite: TCSS 543.
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.
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.
TCSS 600 Independent Study or Research (*-)
Examines current topics and issues associated with computing and software systems. Prerequisite: permission of instructor.
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
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.