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
Uses a modern structured, object-oriented language to introduce the design, implementation, modification, and verification of computer programs. Includes an introduction to program structure, data types, object-oriented design, graphical user interfaces, and event-driven programming. Prerequisite: either TQS 120, a score of 68% on MATHPC test, a score of 75% on MATHEC placement 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 graphical user interfaces, event-driven programming, recursive techniques, and simple data structures. Prerequisite: TCSS 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: TCSS 143.
TCSS 321 Discrete Structures I (5) NW, QSR
Introduces definitions and tools for reasoning about discrete mathematical objects useful for computer professionals. Includes set theory, propositions and predicates, Boolean algebra, sequences, enumeration, algorithms, methods of proof, permutaions, combinations, probability, with applications in computing. Prerequisite: TCSS 143, minimum grade of 2.0 in TQS 124.
TCSS 322 Discrete Structures II (5)
Covers advanced topics in discrete mathematics, including advanced counting techniques, relations, graphs, trees, and models of computation such as finite state machines and Turing machines. Prerequisite: TCSS 321.
Instructor Course Description:
Moshe Rosenfeld
TCSS 325 Computers, Ethics, and Society (5) I&S/VLPA
Covers social issues involving functioning as effective computer professional, diverse professional/technical literature, representation of controversies, understanding ethical frameworks/value systems underlying views, determining professional impacts on co-workers, employers, clients, systems users, and society. Emphasizes written, verbal, electronic communications skills necessary in diverse workplace. Prerequisite: either TCSS 143, T INST 311, or T INST 312; 10 credits of writing coursework.
TCSS 342 Data Structures (5)
Integrates mathematical principles with detailed program development. Covers mathematical reasoning, abstract data types, and data structures. Explores efficiency of algorithms, sequential and linked lists, stacks, queues, trees, hashing, heaps, searching, sorting, directed graphs, and depth-first algorithms. Prerequisite: TCSS 305 (which may be taken concurrently); 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: TCSS 322; TCSS 342.
TCSS 360 Software Development and Quality Assurance Techniques (5)
Software design methodologies and Unified Modeling Language (UML). Includes software development life cycle, managing design in a team environment, top-down bottom-up processes, incremental development, rapid prototyping, abstraction, complexity, hierarchy, composition-decomposition, concurrency, software metrics, statistical process control, case tools, and formal analysis and verification. Prerequisite: TCSS 342; 10 credits of writing coursework.
Instructor Course Description:
Menaka Muppa
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 high-level languages and the translation of such languages into machine instructions. Prerequisite: TCSS 143.
TCSS 372 Computer Architecture (5)
Covers the micro architecture level of machine design and advanced architecture features for performance enhancement. Subjects include I/O, bus, memory and CPU design, hardware support for operating systems, CISC/RISC architectures, embedded systems, and parallelism. Extends the understanding of systems programming.. Prerequisite: TCSS 371; TCSS 342.
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. Enrollment restricted to Computing & Software systems students. 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, interprocess communication, graphical interfaces, and security. Prerequisite: TCSS 342; TCSS 372.
Instructor Course Description:
George Mobus
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: TCSS 360; 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: TCSS 321; TCSS 325; TCSS 371.
TCSS 432 Advances in Object-Oriented Design (5) NW, QSR
Prepares students for understanding and using advances in object-oriented design. Emphasizes criteria for modularization, specification of modules, larger-scale design elements such as design patterns and generic programming. Prerequisite: TCSS 360.
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: TCSS 360.
TCSS 437 Mobile Robotics (5)
Covers the theory and practice of developing algorithms for motion control, navigation, obstacle and avoidance and mobile autonomous robotic devices. Using robotic construction kits, students build and program sophisticated mobile robots. Introduces principles of designing and programming embedded, real-time systems. Prerequisite: TCSS 360; 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: 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: TCSS 360.
TCSS 450 Graphical Display of Information (5)
Developing software interfaces based upon human-computer interaction principles. Evaluate, design, program user interface systems. Fundamentals of human cognition, system characterizations, and human/system interaction; usability methods and user/task-centered design; tools for designing/building user interfaces, emphasis on rapid applications development. Project includes development and evaluation of user interface. Prerequisite: either TCSS 360 or T INST 310.
TCSS 451 Introduction to Digital Media (5)
Covers display devices and interactivity; digital color representation; geometric primitives, patches, and parametrics; affine transformations; scene graph programming; lighting systems; texture maps; projection/hidden surfaces; forward and reverse kinematics; particle systems; rendering; digital audio formats; digital video formats; format conversion and compression algorithms; and streaming methods. Prerequisite: TCSS 343; TCSS 360.
TCSS 452 Human-Computer Interface (5)
Investigates human-computer interface design concepts and related ergonomic and cognitive issues with respect to a broad range of hardware interface modalities, including traditional computers, tablet devices, handheld computers, mobile phone devices, and 3-D displays. Also covers interface design and testing methods.
TCSS 455 Development of Enterprise Applications (5)
Enterprise application development; communication among objects in different applications and on different computers; event-driven programming; multi-threaded programming; client-server and n-tier architectures; maintain persistent object state; introduction to component framework such as Enterprise JavaBeans. Prerequisite: TCSS 360.
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: TCSS 342.
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: TCSS 360.
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: TCSS 422.
TCSS 466 Computer-Mediated Communications (5) Mobus
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. Prerequisite: TCSS 325; TCSS 360.
Instructor Course Description:
George Mobus
TCSS 470 Software Reengineering (5) QSR
Examines concepts and techniques for reengineering of software systems to meet new requirements without performance risk. Includes comparisons of agile processes, CASE (computer-aided software engineering) tools, refactoring, defensive design techniques, and software tools for software evolution. Prerequisite: TCSS 360.
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: TCSS 360.
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 TCSS 342; 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.
Instructor Course Description:
Daniel M Zimmerman
Edwin S. Hong
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: TCSS 435 or 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 522 Computer Operating Systems (5)
Examines the advanced concepts of operating systems and how they function. Includes process management, concurrency, inter-process communication, multi-threading, memory management, caching, file systems, graphical interfaces, security, and networking. Not available for elective credit.
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. Prerequisite: TCSS 543.
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 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. Not available for elective credit.
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. Prerequisite: TCSS 545 and TCSS 572 or equivalents. 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 560 Software Engineering (5)
Prepares students for developing software applications within a human and organizational setting. Focuses on the software development lifecycle, requires gathering and analysis, design methodologies and notations, verification and validation, software measurement, and quality assurance. Not available for elective credit.
TCSS 566 Computer-Mediated Communications (5) Mobus
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 572 Computing Systems Design (5)
Covers machine organization/architecture, systems software and networking of computers for distributed applications. Includes design of CPU, memory, I/O, and assembly language. Network topics include protocols and programming applications distributed over multiple systems. Not available for elective credit.
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 (5, max, 15)
Examines current graduate-level topics and issues associated with computing and software systems. Prerequisite: permission of instructor. Offered: AWSp.
Instructor Course Description:
Ankur Teredesai
Josh Tenenberg
TCSS 598 Masters Seminar in CSS (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 in Computing and Software Systems (1-10, max. 10)
Examines current topics and issues associated with computing and software systems. Prerequisite: permission of instructor.
TCSS 700 Master's Thesis in Computing and Software Systems ([1-10]-)
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.