CatalogDescription: Basic concepts and implementation strategies for modern functional and object-oriented programming languages such as Scheme and Java. Intended for non-majors. No credit to students who have completed CSE 341 or CSE 401.
Programming Languages: Concepts and Implementation teaches language concepts from two complementary perspectives: implementation and paradigms. It covers the implementation of concepts through the incremental construction of a progressive series of interpreters in Python, and Racket Scheme, for purposes of its combined simplicity and power, and assessing the differences in the resulting languages.
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 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 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 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 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 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 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 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
3a8082e126