CSS 107 Introduction to Programming through Animated Storytelling (5) A&H, RSN
Introduces the fundamentals of programming using storytelling in virtual worlds; includes creation of characters, games, short stories, storyboards, 3-D motion, classes, methods, and functions. Contemporary topics vary addressing social, scientific, and ethical issues of information technology.
View course details in MyPlan: CSS 107
CSS 110 Introduction to Cybersecurity (5) SSc
Introduces cybersecurity topics including hacking, social networking, privacy, cryptography, legal aspects, social implications, password management, digital forensics, computer networking, wireless security, and ethical issues. Focuses on various methods and techniques to address cybersecurity threats. No technical experience needed. Course overlaps with: T INFO 110.
View course details in MyPlan: CSS 110
CSS 112 Introduction to Programming for Scientific Applications (4) NSc, RSN
Introduces programming concepts using a discipline-specific computer language with an emphasis on scientific applications. Includes topics such as programming fundamentals (control structures, data types and representation, operations, functions and parameters) and introductory software engineering concepts (specifications, design, testing). Course overlaps with: CSS 132; CSS 142; CSE 142; CSE 160; and TCSS 142. Recommended: STMATH 124 or B MATH 144; and B PHYS 115 or B PHYS 122. Offered: WSp.
View course details in MyPlan: CSS 112
CSS 123 Programming for Data Science (3) RSN
Transition from basic to more advanced programming skills, focusing on using computational tools to solve data science problems. Gain familiarity with higher-level programming techniques (recursion, abstract data types, algorithm analysis), methods for exploring parameter space, and the automation of workflows. A discipline-specific computer language is used for instruction. Course overlaps with: CSS 133; CSS 143; CSE 143; T INFO 473; and TCSS 143. Prerequisite: a minimum grade of 2.0 in either CSS 112, CSS 132, CSS 142, CSE 122, or CSE 142.
View course details in MyPlan: CSS 123
CSS 132 Computer Programming for Engineers I (5) NSc, RSN
Introduces programming concepts within social, mathematical, and technological context. Topics include programming fundamentals (control structures, data types, functions, etc.), computer organization, algorithmic thinking, introductory software engineering concepts, and social and professional issues. Engineering applications are emphasized. A computer language used in engineering practice is used for instruction. Co-requisite: CSSSKL 132. Course overlaps with: CSS 112; CSS 142; CSE 142; and TCSS 142.
View course details in MyPlan: CSS 132
CSS 133 Computer Programming for Engineers II (5) NSc, RSN
Transition from basic programming skills to a rigorous process of software development. Familiarization wit higher level programming techniques (recursion, generic programming, stacks, queues, trees, searching, and sorting). Emphasizes connection between algorithmic thought and implementation. Engineering applications are emphasized. Co-requisite: CSSSKL 133. Course overlaps with: CSS 123; CSS 143; CSE 143; T INFO 473; and TCSS 143. Prerequisite: a minimum grade of 2.0 in CSS 132.
View course details in MyPlan: CSS 133
CSS 142 Computer Programming I (5) NSc, RSN
Introduces programming concepts within social, cultural, scientific, mathematical, and technological context. Topics include programming fundamentals (control structures, data types and representation, operations, functions and parameters), computer organization, algorithmic thinking, introductory software engineering concepts (specifications, design, testing), and social and professional issues. Co-requisite: CSSSKL 142. Course equivalent to: TCSS 142. Course overlaps with: CSS 112; CSS 132; CSE 121; and CSE 142.
View course details in MyPlan: CSS 142
CSS 143 Computer Programming II (5) NSc, RSN
Transition from basic programming skills to a rigorous process of software development. Familiarization with higher level programming techniques (recursion, generic programming, stacks, queues, trees, searching, and sorting). Emphasizes connection between algorithmic thought and implementation. Co-requisite: CSSSKL 143. Course equivalent to: CSE 143 and TCSS 143. Course overlaps with: CSS 123; CSS 133; CSE 122; CSE 123; and T INFO 473. Prerequisite: a minimum grade of 2.7 in either CSS 142 or CSE 142, or a minimum score of 4 on the AP Computer Science A exam.
View course details in MyPlan: CSS 143
CSS 205 Women in STEM Seminar: College Life (1, max. 6) SSc, DIV
Develop effective academic strategies for women in science, technology, engineering and mathematics. Explores the representation of women in STEM as they are portrayed in literature and film. Discusses issues if STEM and gender including: mentors and support groups, social issues, role models and stereotyping, and earning respect. Credit/no-credit only.
View course details in MyPlan: CSS 205
CSS 211 Computers and Society (5) SSc
Exploration and discussion of issues related to the development, support, and usage of computing technology in today's society. Topics vary each quarter but may include coverage of areas such as intellectual property rights, cybersecurity, privacy, freedom of speech, liability, ethics, social justice, diversity, and labor. Course overlaps with: JSIS B 356. Prerequisite: a minimum grade of 2.0 in either B WRIT 135, ENGL 141, ENGL 182, ENGL 197, ENGL 198, or ENGL 199.
View course details in MyPlan: CSS 211
CSS 301 Technical Writing for Computing Professionals (5)
Explores the most effective methods of communication based on the common expectations for computing and other engineering professionals. Examines various writing patterns commonly used in technical writing, including compare/contrast, persuasive, process, instructions, and problem/solution, and when/why is used. Prerequisite: either B CUSP 135, B WRIT 135, ENGL 141, ENGL 182, ENGL 197, ENGL 198, ENGL 199, or HCDE 231.
View course details in MyPlan: CSS 301
CSS 305 Survey of Computer Systems for Teachers (5) RSN
Survey of computer systems concepts to provide context and understanding for teachers creating K-12 courseware. Includes issues, tradeoffs, and solutions of computer systems, including data structures, networks, databases, human computer interactions, software engineering, and cybersecurity. Non-CSS majors only. Prerequisite: a minimum grade of 2.7 in either CSE 142, CSS 142, or CSS 161; and a minimum grade of 2.0 in CSS 211. Credit/no-credit only.
View course details in MyPlan: CSS 305
CSS 315 Cybersecurity Ethics, Policy, and Law (5) SSc
Examines ethics, policy, and law from a cybersecurity perspective, including topics such as: ethics frameworks and philosophical perspectives; professional ethical obligations; ethical decision making; ethical hacking; policy development and implementation; privacy; legal and regulatory issues; state, national, and international cybersecurity law; intellectual property, and cybercrime. Course overlaps with: INFO 351; JSIS B 358; and TCSS 325. Prerequisite: either B WRIT 134 or B WRIT 135.
View course details in MyPlan: CSS 315
CSS 320 Digital Forensics (5) NSc, RSN
Examines digital forensics techniques in a variety of contexts, such as computers, mobile devices, networks, virtual machines, social media, the cloud, and email. Entire digital forensics process is explored, including investigations, data acquisition, report writing, and expert testimony. A variety of tools and techniques are explored. Differences in Windows, Linux, and Macintosh file systems are examined. Course overlaps with: T INFO 443. Prerequisite: one CSS 100-level course; and either B WRIT 134 or B WRIT 135.
View course details in MyPlan: CSS 320
CSS 340 Applied Algorithmics (5)
Extends the principles of programming and discrete math (e.g., programming languages, recursion, sorting, computational complexity, mathematical induction, logic concepts, set theory, hash tables, etc.) and applies them to the development, analysis, and implementation of data structures and efficient software. Course overlaps with: T INFO 473. Prerequisite: either a minimum grade of 2.0 in CSS 123 and CSSSKL 123, or a minimum grade of 2.5 in either CSS 133, CSS 143, CSE 143, or CSS 162; and a minimum grade of 2.5 in either STMATH 124 or MATH 124.
View course details in MyPlan: CSS 340
CSS 342 Data Structures, Algorithms, and Discrete Mathematics I (5)
Integrating mathematical principles with detailed instruction in computer programming. Explores mathematical reasoning and discrete structures through object-oriented programming. Includes algorithm analysis, basic abstract data types, and data structures. May not be repeated. Course overlaps with: T INFO 473. Prerequisite: a minimum grade of 2.8 in either CSS 133, CSS 143, CSE 143, or CSS 162; and minimum grade of 2.5 in either STMATH 125 or MATH 125.
View course details in MyPlan: CSS 342
CSS 343 Data Structures, Algorithms, and Discrete Mathematics II (5)
Develops competencies associated with problem-solving, algorithms, and computational models. Explores algorithm development and analysis; abstract data types including trees, priority queues, heaps, graphs, and hash tables; use of object-oriented design/programming and design patterns; regular expressions; and language modeling. Prerequisite: CSS 301, which may be taken concurrently; and a minimum grade of 2.0 in CSS 342.
View course details in MyPlan: CSS 343
CSS 350 Management Principles for Computing Professionals (5)
Through a team software project, explores critical interpersonal, communication, leadership, decision-making, social, and cultural theories drawn from contemporary research in anthropology, sociology, psychology, and business. Prerequisite: CSS 301, which may be taken concurrently; may not be repeated.
View course details in MyPlan: CSS 350
CSS 360 Software Engineering (5)
Surveys the software engineering processes, tools, and techniques used in software development and quality assurance. Topics include life-cycle models, process modeling, requirements analysis and specification techniques, quality assurance techniques, verification and validation, testing, project planning, and management. Prerequisite: either CSS 133, CSS 143, CSE 143, CSS 162, or CSS 173.
View course details in MyPlan: CSS 360
CSS 370 Analysis and Design (5)
Methods and tools to capture and communicate requirements, proposed solutions, and design to management, customers, and software developers. Data, process, and object modeling using languages such as data flow diagrams, entity/relationship diagrams, and unified modeling language use cases and class and sequence diagrams. Prerequisite: Prerequisite: 2.0 in CSS 301; 2.0 in CSS 342 or CSS 340; 2.0 in CSS 360; may not be repeated.
View course details in MyPlan: CSS 370
CSS 382 Introduction to Artificial Intelligence (5) RSN
Principal ideas and developments in artificial intelligence, such as problem solving, knowledge representation, search, reasoning under uncertainty, learning, and natural language processing. Course overlaps with: CSE 415; CSE 473; and TCSS 435. Prerequisite: either a minimum grade of 2.0 in CSS 340, or a minimum grade of 2.0 in CSS 342.
View course details in MyPlan: CSS 382
CSS 383 Bioinformatics (5) NSc
A project-based introduction to fundamental topics in Bioinformatics. Students develop a working knowledge of computational approaches to analyze biological datasets, including DNA, RNA and protein sequence datasets. Includes topics such as: sequence analysis, alignment , phylogeny, comparative genomics, and biological network analysis. Offered: jointly with B BIO 383; W.
View course details in MyPlan: CSS 383
CSS 385 Introduction to Game Development (5) A&H/NSc
Examines the fundamental issues in designing and developing computer video games; creative and artistic elements, story narration, software architecture, interaction model, mathematic, physics, special effects, and in-game AI logic. Experiences elements in game design: world setting, game play, and interface; and experiences implementing games: conceptualization, prototyping, and play testing. Prerequisite: STMATH 125 or MATH 125; and CSS 340 or CSS 342. Offered: Sp.
View course details in MyPlan: CSS 385
CSS 405 Women in STEM Seminar: Career/Professional Life (1, max. 6) SSc, DIV
Develops effective academic strategies for women in science, technology, engineering and mathematics. Explores the representation of women in STEM as they are portrayed in literature and film. Discusses issues of STEM and gender including: earning respect, work-life balance, social issues, connection and networks, job hunting and technical interviews. Credit/no-credit only.
View course details in MyPlan: CSS 405
CSS 416 Ethical Hacking and Penetration Testing (5)
Examines ethical hacking and penetration testing tools, techniques, and methods. Will learn, understand, and execute ethical hacking and penetration testing in a manner similar to a would-be adversary so that effective defenses may later be used to counter malicious attacks. The phases of hacking and ethical considerations will also be examined. Prerequisite: either CSS 310, INFO 310, or T INFO 310.
View course details in MyPlan: CSS 416
CSS 422 Hardware and Computer Organization (5)
An introduction to the architecture, operation, and organization of a modern computing machine. Topics covered include basic logic operations, state-machines, register models, memory organization, peripherals, and system issues. Assembly language taught in order to understand the instruction set architecture and memory model of the computer. May not be repeated. Prerequisite: CSS 342.
View course details in MyPlan: CSS 422
CSS 427 Introduction to Embedded Systems (5)
Introduction to the process of specifying and designing embedded systems. Follows the embedded systems development; software and hardware partitioning, processor selection, real-time operating systems, coding in assembly language and C, debugging, and testing. Lab experiments reinforce fundamental concepts using embedded design and debug tools. Course overlaps with: B ME 460; CSE 474/E E 474; and TCES 460. Prerequisite: CSS 342; and either B EE 425 or CSS 422, which may be taken concurrently.
View course details in MyPlan: CSS 427
CSS 431 Network Architecture and Management (5) RSN
Examines configuring, deploying, managing, maintaining, and troubleshooting network infrastructure. OSI and TCP reference models, TCP/IP suite of protocols, LANs, WANs, design methodologies, security, firewalls, VPNs, IDSs, IPSs, VOIP, packet vs. circuit switching, router configuration, ICMP, SDN, cloud design and operations, data centers, and optimization are explored. Oriented toward network operations. Course equivalent to: T INFO 250. Course overlaps with: CSE 461; INFO 314; TCES 425; and TCSS 430.
View course details in MyPlan: CSS 431
CSS 432 Network Design and Programming (5) RSN
Examines OSI architecture, TCP/IP protocols, data link networks, packet switching, routing, routing protocols, security, performance evaluation, flow control, and congestion control. Networks are explored in the context of protocol development, implementation, writing of functionality, and inter-process communication facilities (e.g., sockets, pipes, RPC). Oriented toward networking programming and performance evaluation experiments. Prerequisite: a minimum grade of 2.0 in CSS 343; recommended: CSS 430.
View course details in MyPlan: CSS 432
CSS 436 Cloud Computing (5)
Pragmatic, program-oriented overview of cloud computing covering key cloud technologies and components which enable and constitute the cloud (such as virtualization, compute, storage, network, and security). Evaluation of trade-offs in building, migrating to, and using cloud services and systems. Investigation of architectural and theoretical underpinnings of cloud services, including choices in monitoring, scalability and availability. Course overlaps with: TCSS 462. Prerequisite: either CSS 430 or CSS 432. Offered: WSp.
View course details in MyPlan: CSS 436
CSS 444 Analyzing Biases in the Age of Digital Data (5) DIV
Introduction to the algorithms of machine learning that are applied in the real world, considering biases, methodological limitations, and pitfalls of data. It provides students with a framework for analyzing the social, political issues, enabling them to think critically about ethical boundaries. The topics of the course draw from classical statistics, machine learning, ethics and privacy. Course overlaps with: STAT 303. Prerequisite: CSS 301; and either CSS 340 or CSS 342; recommended: experience coding non-trivial functions to manipulate datasets; and previous coursework in probability, statistics, and algorithms.
View course details in MyPlan: CSS 444
CSS 449 Design and Analysis of Algorithms (5)
Introduces fundamental techniques for algorithm design and analysis, such as computational complexity, greedy algorithms, divide-and-conquer algorithms, dynamic programming, graph algorithms, randomized algorithms, and computational intractability. Course overlaps with: CSE 421. Prerequisite: CSS 343.
View course details in MyPlan: CSS 449
CSS 452 Game Engine Development (5)
Studies the technical fundamentals and implementation details of a game engine. Topics include software architecture, input, resource management, textures, animation, coordinate systems, object behaviors and interactions, camera manipulations, illumination and special effects, physics, and scene management Prerequisite: a minimum grade of 2.0 in either CSS 340 or CSS 342; a minimum grade of 2.0 in CSS 360; and a minimum grade of 2.0 in either STMATH 125 or MATH 125.
View course details in MyPlan: CSS 452
CSS 455 Introduction to Computational Science and Scientific Programming (5)
Introduction to principles and fundamental algorithms of scientific computing, including applied linear algebra and numerical methods. Group projects address current computational problems in the physical, biological, and life sciences. Course overlaps with: STMATH 405 and STMATH 406. Prerequisite: either STMATH 125 or MATH 125; and either CSS 133, CSS 143, CSE 143, CSS 162, or CSS 173.
View course details in MyPlan: CSS 455
CSS 457 Signal Computing (5)
How data collected from the real world is captured, represented, processed, and stored in computers. Topics include digitization, digital signal processing, filtering, compression, and how signal processing is used as part of larger systems, such as multimedia, IoT, and machine learning. May not be repeated. Prerequisite: CSS 340 or CSS 342; and STMATH 208.
View course details in MyPlan: CSS 457
CSS 461 Software Project Management (5)
Fundamental skills required for effective software project management, including project planning and tracking and people management. Topics include risk analysis, project scope, scheduling, resource allocation, cost estimation, negotiation, monitoring and controlling schedule, software metrics, quality management, process improvement, staffing, leadership, motivation, and team building. Prerequisite: CSS 360, may not be repeated.
View course details in MyPlan: CSS 461
CSS 477 Foundations of Secure Software Development (5) RSN
Examines principles and techniques for developing secure software. Secure engineering, design and coding principles are introduced with a focus on breadth over depth including topics such as secure development lifecycle, known vulnerabilities, common attack profiles, threat modeling, access controls, encryption techniques, error handling, and secure quality assurance. Course overlaps with: TCSS 483. Prerequisite: CSS 343 and CSS 360.
View course details in MyPlan: CSS 477
CSS 485 Artificial Neural Networks (5)
Application of biological computing principles to machine problem solving. State of the art in artificial neural networks (ANNs), including vision, motor control, learning, data analysis. Topics include ANN architectures, algorithms: perceptrons, Widrow-Hoff, backpropagation, Hebbian networks. May not be repeated. Prerequisite: CSS 343 and STMATH 208.
View course details in MyPlan: CSS 485
CSS 503 Systems Programming (4)
Examines the logical design and programming aspects of operating systems and network communication. Topics include processes, threads, synchronization, deadlocks, memory management, virtual memory, file systems, and client-server network programming. Prerequisite: minimum grade of 2.7 in CSS 502.
View course details in MyPlan: CSS 503
CSS 514 Security, Policy, Ethics, and the Legal Environment (2)
Addresses ethical, legal, and policy frameworks within which information assurance and secure development lifecycle professionals must practice. Covers ethical, moral, legal and policy issues related to computers and telecommunications systems, such as how they impact privacy, fair information practices, equity, content control, and freedom of electronic speech.
View course details in MyPlan: CSS 514
CSS 518 Human Factors in Cybersecurity (5)
Humans are considered the weakest link in cybersecurity. Regardless of the robustness of technical solutions, without an understanding and appreciation for the human factors, there will continue to be significant compromises. This course examines the human factors involved in cybersecurity, including behavioral, psychological, social, technical, and usability components.
View course details in MyPlan: CSS 518
CSS 520 Cyber Warfare, Policy, and the Modern State (5)
Explores cybersecurity as a key element of national security and global politics. Examines how nation-states, criminal organizations, and hacktivist groups use cyber operations to project power, disrupt infrastructure, steal intellectual property, & influence political processes. Analyzes global cyber threats through a national security and international policy lens, including cyber warfare, espionage, terrorism, & emerging governance frameworks. Course overlaps with: JSIS B 555; JSIS B 581; and T INFO 580.
View course details in MyPlan: CSS 520
CSS 532 Internet of Things (5)
Studies the fundamental knowledge and technologies, implementation details, and the latest research findings of Internet of Things. Topics may include IoT components, IoT system architectures, cloud computing services for IoT, network protocols and standards for IoT, and IoT application development. Recommended: Computer networks, distributed systems, cloud computing
View course details in MyPlan: CSS 532
CSS 533 Distributed Computing (5)
Builds on knowledge of advanced programming methodologies in distributed computing. Topics include message passing, indirect communication, remote method invocation, distributed objects, multi-tier server-side programming, peer-to-peer systems, distributed synchronization, distributed check-pointing, and replica management.
View course details in MyPlan: CSS 533
CSS 535 High Performance Computing (5)
Covers the essential theories, principles, concepts, and practices related to designing, implementing, evaluating, and using high-performance computing systems. These include ways to reason about issues arising from the use of homogeneous and heterogeneous combinations of memory and computational resources (e.g. CPUs and GPUs), data, algorithms, and application domains.
View course details in MyPlan: CSS 535
CSS 537 Network and System Security (5)
Examines the theory and practice of network security, the role of cryptography, and the current state of the art in building secure networked systems. Covers topics such as access control, authentication, perimeter security defense, firewalls, virtual private networks, intrusion detection systems, and wireless security and network security auditing tools. Course overlaps with: TCSS 576.
View course details in MyPlan: CSS 537
CSS 549 Algorithm Design and Analysis (5)
Covers fundamental techniques for algorithm design and analysis, such as computational complexity, greedy algorithms, divide-and-conquer algorithms, dynamic programming, graph algorithms, randomized algorithms, and computational intractability. Cannot be taken if credit received for CSS 449.
View course details in MyPlan: CSS 549
CSS 551 Advanced 3D Computer Graphics (5)
Examine topics and issues associated with the design and implementation of commercial-scale graphical applications including: system architecture, user interaction models, and issues and algorithms in modeling, animation, and rendering. Cannot be taken if credit received for CSS 451. Recommended: Data Structures, Algorithms, Linear Algebra
View course details in MyPlan: CSS 551
CSS 552 Topics in Rendering (5)
Studies core algorithms and technologies in synthesizing high quality images, including: camera models, 3D viewing, visibility sampling and approximation, light source models, material property approximation, illumination models, human vision system, and texture synthesis. Prerequisite: CSS 451. Offered: W.
View course details in MyPlan: CSS 552
CSS 553 Software Architecture (5)
Studies the concepts, representations techniques, development methods, and tools for structuring software systems. Topics include domain-specific software architectures, architecture description languages, architectural styles, product line architectures, and standards. Combines hands-on experience designing software with an understanding of recent developments in the field.
View course details in MyPlan: CSS 553
CSS 566 Software Management (5)
Covers theories, principles, and practices that are designed to enable project managers and other related stakeholders as they assess, choose, and use appropriate frameworks, tools, techniques, and metrics to guide software projects toward successful completion or termination.
View course details in MyPlan: CSS 566
CSS 577 Secure Software Development (5)
Examines secure design and secure coding principles, practices, and methods including least privilege, threat modeling, and static analysis. Covers common vulnerabilities such as buffer overruns, integer overflows, injection attacks, cross-site scripting, and weak error handling in detail.
View course details in MyPlan: CSS 577
CSS 578 Ethical Penetration Testing (5)
Explores ethical hacking and penetration testing tools, vulnerability analysis and exploitation, and defense techniques. Covers topics such as reconnaissance, OS fingerprinting, remote network mapping, web application, software and network vulnerabilities, attack surface analysis, fuzz testing, exploitation of vulnerabilities, credential gathering, and privilege escalation.
View course details in MyPlan: CSS 578
CSS 581 Machine Learning (5)
Theory and practical use of machine learning techniques, such as decision trees, logistic regression, discriminant analysis, neural networks, naive Bayes, k-nearest neighbor, support vector machines, collaborative filtering, clustering, and ensembles. Emphasizes hands-on experience with real-world datasets, combined with several programming projects.
View course details in MyPlan: CSS 581
CSS 582 Interpretable Machine Learning in Applications (5)
Introduces core machine learning (ML) algorithms with applications. Emphasizes interpretable ML methods and metrics for assessing fairness, accountability and transparency in data, models, and results. Addresses ethical considerations - justice, responsibility and trust. Covers research methodologies including literature review, proposal writing, experimental design, presentation and final reporting. Prerequisite: either CSS 343, CSS 502, CSS 549, or equivalent (advanced algorithms). Offered: S.
View course details in MyPlan: CSS 582
CSS 593 Cybersecurity Engineering Capstone ([1-5]-, max. 10)
Students apply their knowledge and skills related to cybersecurity engineering in a culminated capstone project. Prerequisite: minimum grade of 2.7 in each of CSS 514, CSS 517, CSS 519, CSS 527, CSS 537, CSS 577, and CSS 578.
View course details in MyPlan: CSS 593