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

UW BOTHELL
COMPUTING & SOFTWARE SYSTEMS

Detailed course offerings (Time Schedule) are available for

CSS 101 Digital Thinking (5) RSN
Introduces the fundamental concepts behind computing and computational thinking including logical reasoning; problem solving, data representation; abstraction; complexity management; computers and network operations; effective web searches; ethics; and legal and social aspects of information technology through the creation of popular digital artifacts such as web pages, animations, and video games. Offered: jointly with BIS 111; AWSp.
View course details in MyPlan: CSS 101

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.
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). 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. 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.
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. 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.
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. Prerequisite: minimum grade of 2.7 in CSS 161, CSS 142, or CSE 142. Co-requisite: CSSSKL 143.
View course details in MyPlan: CSS 143

CSS 173 Fundamentals of Programming Theory and Applications (5)
Fundamental concepts and techniques for analysis, design and implementation of computer programming. May not be repeated. Prerequisite: either CSS 142, CSE 122, or CSE 142.
View course details in MyPlan: CSS 173

CSS 198 Supervised Study (1-5, max. 6)
Supervised exploration of computing-related topic or concept.
View course details in MyPlan: CSS 198

CSS 199 Computing Research (1-5, max. 6)
Exploration of computing research activities and processes as specified in a contract with a faculty member.
View course details in MyPlan: CSS 199

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.
View course details in MyPlan: CSS 211

CSS 225 Physics and Chemistry of Computer Components and Their Manufacture (5) RSN
Examination of the basic physics and chemistry underlying the design and manufacture of computer components. Introduction to the electronic structure of the solid state, the nature of p-n junctions, and basic transistor design. Aspects of materials and polymer science and photolithography employed in microchip manufacture. May not be repeated.
View course details in MyPlan: CSS 225

CSS 290 Topics in Computing (1-5, max. 10)
Examines current topics and issues associated with computing that are of broad relevance.
View course details in MyPlan: CSS 290

CSS 295 K-12 Computing Education (2) DIV, RSN
Collaboration with community partners to develop computing education opportunities for K-12 students. Curriculum development and basic computing education environments. Prerequisite: Either CSS 143, which may be taken concurrently, or a minimum grade of 3.0 in CSS 142. Credit/no-credit only.
View course details in MyPlan: CSS 295

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 310 Information Assurance and Cybersecurity (5)
Provides theoretical and practical introduction to information assurance and cybersecurity (IAC). Includes methods and practices for securing information and information systems. Covers how vulnerabilities arise, recognizing evolving threats, and mitigating them. Explores the role of risk analysis, information privacy, accountability, and policy.
View course details in MyPlan: CSS 310

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. 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. Prerequisite: one CSS 100-level course; and either B WRIT 134 or B WRIT 135.
View course details in MyPlan: CSS 320

CSS 330 Topics in Mathematics for Software Development (1-5, max. 10)
Topics in intermediate mathematics as applied within the context of computer software application development. Topics chosen from the fields of intermediate calculus and finite mathematics.
View course details in MyPlan: CSS 330

CSS 337 Secure Systems (5)
Prepares students for deploying and operating secure systems on a heterogeneous distributed infrastructure. Covers cybersecurity principles, methods, and tools used to protect against and detect external and internal threats. Addresses ethical and professional issues for cybersecurity personnel. Assumes students have basic computer administration skills. Prerequisite: either CSS 142, CSE 142, or CSS 161; and CSS 310.
View course details in MyPlan: CSS 337

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. 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. 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: a minimum grade of 2.0 in CSS 301; a minimum grade of 2.0 in CSS 342; and a minimum grade of 2.0 in either STMATH 125 or MATH 125.
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 371 The Business of Technology (5)
Methods for aiding software development, communicating progress to customers/management, and developing marketing strategies for the product. Incorporates social, psychological, and ethical issues. May not be repeated.
View course details in MyPlan: CSS 371

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. 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 390 Special Topics (1-5, max. 10)
Examines current topics and issues associated with computing and software systems.
View course details in MyPlan: CSS 390

CSS 397 Computing Internship (1-5, max. 5)
Elective internship project as delineated in a contract between student, faculty advisor, and community sponsor. Prerequisite: CSS 301; CSS 360; and either CSS 340 or CSS 342 Credit/no-credit only. Offered: AWSpS.
View course details in MyPlan: CSS 397

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 411 Computing Technology and Public Policy (5) SSc
In depth investigation of economical, political, organizational, and societal ramifications of using computing technology. Evaluates current policy approaches, determines trends, and proposes changes. Topics vary by quarter.
View course details in MyPlan: CSS 411

CSS 415 Emerging Topics in Information Assurance and Cybersecurity (1-5, max. 15)
Explores emerging topics and unique subjects in information assurance and cybersecurity (IAC) not otherwise covered in the IAC curriculum. Prerequisite: either CSS 310, INFO 310, or T INFO 310.
View course details in MyPlan: CSS 415

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 421 Introduction to Hardware and Operating Systems (5) NSc
An introduction to the architecture of modern microprocessors and operating systems. Examines the basic theories and concepts of how hardware and software cooperatively interact to accomplish real-world tasks. Prerequisite: CSS 301; and either CSS 340 or CSS 342.
View course details in MyPlan: CSS 421

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. Prerequisite: CSS 342; and either B EE 425 or CSS 422, which may be taken concurrently.
View course details in MyPlan: CSS 427

CSS 430 Operating Systems (5)
Principles of operating systems, including process management, memory management, auxiliary storage management, and resource allocation. Focus on the structure of the popular desktop and real-time operating systems. May not be repeated. Prerequisite: a minimum grade of 2.0 in CSS 343.
View course details in MyPlan: CSS 430

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.
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 434 Parallel and Distributed Computing (5)
Concepts and design of parallel and distributed computing systems. Topics include: fundamentals of OS, network and MP systems; message passing; remote procedure calls; process migration and mobile agents; distributed synchronization; distributed shared memory; distributed file system; fault tolerance; and grid computing. Prerequisite: CSS 343.
View course details in MyPlan: CSS 434

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. 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)
This course is designed to provide an introduction to the algorithms of machine learning that are applied in the real world, considering biases, methodological limitations and pitfalls of data. It will provide 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. 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 448 Introduction to Compilers (5)
Introduction to the structures and organization of programming languages; fundamentals of translation; regular expressions and context-free grammars; syntax and lexical analysis, symbol tables, semantics and parsing, code generation; translation techniques such as LR, LL, and recursive descent. Prerequisite: CSS 343; may not be repeated.
View course details in MyPlan: CSS 448

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. Prerequisite: CSS 343.
View course details in MyPlan: CSS 449

CSS 450 Computer Graphics (5)
Introduces the fundamental concepts in computer graphics: camera model, illumination models, hardware shading, transformation pipeline, scene graphs, texture mapping, and simple modeling and animation techniques. Prerequisite: minimum grade of 2.0 in CSS 342; may not be repeated.
View course details in MyPlan: CSS 450

CSS 451 3-D Computer Graphics (5)
Introduces practical and popular three-dimensional (3-D) graphic algorithms. Examines modeling (how to build 3-D objects), animation (how to describe the motion of objects), and rendering (how to generate images of 3-D objects in animation). Prerequisite: CSS 342; and STMATH 125 or MATH 125
View course details in MyPlan: CSS 451

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. 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 458 Fundamentals of Computer Simulation Theory and Application (5)
Covers all aspects of computer simulation including theory, implementation, and application. Presents real-life interdisciplinary examples. Final student project models a real-life situation with a computer simulation. Prerequisite: CSS 340 or CSS 342
View course details in MyPlan: CSS 458

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 473 Entrepreneurship Seminar (5)
Creates or works within a new venture. New venture situations include for-profit and non-profit companies and launching new products/services within existing companies. Develops a business plan. Offered: jointly with B BUS 443.
View course details in MyPlan: CSS 473

CSS 474 Product Development Lab (5)
Includes a technology project and product development within the dynamic of time-pressured competition. Focuses on systematically improving products to beat competition and win the customer. Topics include benchmarking, competitive intelligence, and managing small group product development. Offered: jointly with B BUS 444.
View course details in MyPlan: CSS 474

CSS 475 Database Systems (5)
Methods for obtaining requirements and designing database systems; differences between hierarchical, relational, and network database designs; techniques for designing and coding effective reporting procedures. Prerequisite: CSS 360 or B IMD 351.
View course details in MyPlan: CSS 475

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. Prerequisite: CSS 343 and CSS 360.
View course details in MyPlan: CSS 477

CSS 478 Usability and User-Centered Design (5)
Application of human information processing models, theories and human-computer interaction principles for designing interactive systems. Emphasis is on how usability methods could be incorporated into the system design lifecycle. Topics include user survey, heuristic evaluation, task analysis and experimental testing. Prerequisite: either CSS 360 or B IMD 351; may not be repeated.
View course details in MyPlan: CSS 478

CSS 480 Principles of Human-Computer Interaction (5)
Examines fundamentals of human perception, human cognition, attention and memory constraints; role of user experience and intelligence; input and output devices; standards compliance; design of systems for individual versus collaborative work settings; rapid prototyping, user-centered design techniques, and design evaluation methods. Prerequisite: CSS 360; may not be repeated.
View course details in MyPlan: CSS 480

CSS 481 Web Programming and Applications (5)
Examines the core web development technologies used to design, build and support web-based applications. Introduce various web programming languages. creates interactive media projects, including applying programming constructs, incorporating text and multimedia contents, and using standard web communication formats. Prerequisite: CSS 342 and CSS 475.
View course details in MyPlan: CSS 481

CSS 482 Expert Systems (5)
Theory and application of expert systems: computer systems that capture and use human expertise. Applications include computer configuration, fault diagnosis, computer-aided instruction, data interpretation, planning and prediction, and process control. Prerequisite: CSS 343; may not be repeated.
View course details in MyPlan: CSS 482

CSS 483 Bioinformatics Algorithms (5)
Covers basic molecular biology to aid in the understanding of current bioinformatics problems that need computational tools. Explores fundamental bioinformatics algorithms of current and future bioinformatics systems. Students implement algorithms on practical biology problems. Prerequisite: CSS 343, which may be taken concurrently.
View course details in MyPlan: CSS 483

CSS 484 Multimedia Data Processing (5)
Introduces the concepts, issues, design, implementation, standards and applications of multimedia technologies. Discusses the characteristics, compression and processing of digital multimedia data. Prerequisite: CSS 340 or CSS 342.
View course details in MyPlan: CSS 484

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 486 Machine Intelligence (5) RSN
Basic machine learning (ML) and artificial intelligence (AI) methods and the related techniques used in modern AI systems. Students learn about both the theory of the algorithms and the challenges of implementing them in a modern programming language. Prerequisite: STMATH 208 and CSS 343. ; recommended: coursework in probability and statistics; linear algebra; and discrete math.
View course details in MyPlan: CSS 486

CSS 487 Computer Vision (5)
Methods for extracting content from digital images. Topics typically include linear filters, edge detection, segmentation, stereo vision, motion estimation, and object recognition: Examines applications of computer vision, such as image databases and robot navigation. Prerequisite: CSS 343.
View course details in MyPlan: CSS 487

CSS 490 Special Topics in Computing and Software Systems (1-5, max. 20)
Examines current topics and issues associated with computing and software systems. Offered: AWSpS.
View course details in MyPlan: CSS 490

CSS 495 Applied Computing Internship (1-5, max. 10)
Elective completion of a work project as delineated in a contract between student, faculty advisor, and community sponsor. Prerequisite: CSS 350; CSS 360; CSS 421. Credit/no-credit only.
View course details in MyPlan: CSS 495

CSS 496 Applied Computing Capstone (5)
Group seminar project requires software development and research project in applied computing. Objectives include: integrating minor or concentration with computing, reviewing professional literature, writing technical documents, and presenting project results to technologists/end-users. Prerequisite: CSS 301; CSS 360; CSS 421; and either CSS 340 or CSS 342.
View course details in MyPlan: CSS 496

CSS 497 Computer Science and Software Engineering Capstone ([1-10]-, max. 10)
Completion of project as delineated in a contract between student, faculty advisor, and community sponsor. Prerequisite: CSS 350; CSS 370; CSS 422; CSS 430; two additional CSS courses.
View course details in MyPlan: CSS 497

CSS 498 Independent Study (1-5, max. 10)
Individual study by arrangement with instructor.
View course details in MyPlan: CSS 498

CSS 499 Undergraduate Research (0-5, max. 10)
Design and implementation of a research study as specified in a contract with a faculty member.
View course details in MyPlan: CSS 499

CSS 501 Data Structures and Object-Oriented Programming I (4)
Covers data structures and object-oriented programming. Studies basic and advanced data types, their uses, and implementations. Students design solutions to programming problems using object-oriented techniques with various data types. Covers algorithms and their tradeoffs. Uses modern software engineering practices.
View course details in MyPlan: CSS 501

CSS 502 Data Structures and Object-Oriented Programming II (4)
Covers advanced data structures including trees, balanced trees, heaps, graphs, and hash tables along with associated algorithms. Covers object-oriented programming with a focus on design and implementation of problems using inheritance and polymorphism. Introduces formal automata theory. Prerequisite: minimum grade of 2.7 in CSS 501.
View course details in MyPlan: CSS 502

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 506 Software Development Processes (2)
Provides a foundation in software engineering processes, methods, and practices associated with prescriptive and agile software process models. Includes the creation of artifacts commonly used to communicate, justify, and manage computing projects.
View course details in MyPlan: CSS 506

CSS 507 Software Modeling Techniques (2)
Provides the concepts and skills needed to use modeling in software analysis and design to foster understanding and communications of a problem and its potential solutions. Includes the creation of modeling artifacts for projects by hand and using CASE tools. Prerequisite: a minimum grade of 2.7 in CSS 506.
View course details in MyPlan: CSS 507

CSS 508 Software Testing and Quality (2)
Reviews approaches, concepts, and techniques used to validate and verify software and methods used to improve software processes. Students reflect on the applicability of software engineering and computer science methods. Prerequisite: a minimum grade of 2.7 in CSS 507.
View course details in MyPlan: CSS 508

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 515 Contemporary Issues in Information Assurance (2)
Addresses current developments in information assurance and cybersecurity, such as the changing threat spectrum, legal developments, international relationships, and intellectual property protection with an emphasis on the ethical and moral perspectives. Covers communities and resources important to becoming a responsible professional in the security field.
View course details in MyPlan: CSS 515

CSS 517 Information Assurance and Cybersecurity (5)
Explores information assurance and cybersecurity for engineering and operational environments including topics such as: secure development lifecycle; policy development and implementation; ethical obligations; risk management; security operations; common threats, vulnerabilities, and exploits; confidentiality, integrity, and availability; cryptology; information lifecycle; privacy considerations; legal and regulatory issues, and governance.
View course details in MyPlan: CSS 517

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 519 Incident Response and Risk Management (5)
Risk management and incident response from an information assurance and cybersecurity perspective, including topics such as: risk management; risk assessments; threat, vulnerability and exploit analysis; risk prioritization; risk mitigation; business impact analysis; business continuity planning; disaster recovery planning; incident response and recovery; compliance; and audits.
View course details in MyPlan: CSS 519

CSS 527 Cryptography and Information Assurance (5)
Explores the theory and application of cryptography from a computer science perspective. Examines the mathematical background, implementation, and deployment of cryptographic algorithms for symmetric and asymmetric encryption, hashing, and digital signatures. Discusses applications of cryptography to build and deploy secure systems. Prerequisite: either CSS 517, which may be taken concurrently or permission of instructor.
View course details in MyPlan: CSS 527

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 534 Parallel Programming in Grid and Cloud (5)
Exploration of theoretical programming methodology and practical middleware design used for parallel programming in grid and cloud systems. Uses different programming models, parallelizing patterns, and middleware systems for designing application-specific fault-tolerant parallel software.
View course details in MyPlan: CSS 534

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.
View course details in MyPlan: CSS 537

CSS 538 Security in Emerging Wireless and Mobile Networks (5)
Examines the security issues associated with various emerging wireless, mobile networks, and pervasive systems. Covers topics such as MAC layer and routing layer security; robust localization; trust and reputation mechanisms; mobile malwares; authentication solutions; and machine learning based intrusion detection techniques.
View course details in MyPlan: CSS 538

CSS 539 Cybersecurity in Emerging Environments (5)
Explores security issues and solutions in emerging environments and non-traditional computing platforms such as vehicular networks, mobile phone systems, and pervasive systems. Also covers topic such as usable security, managing trade-offs in resource-constrained systems, and reasoning with uncertain information.
View course details in MyPlan: CSS 539

CSS 545 Mobile Computing (5)
Covers concepts related to systems once can build located at the intersections of pocket size computing devices; location aware technologies; mobile web services; and integrated sensors such as touch- and gesture-based UIs. Uses programming projects to explore the concepts and application in each area, and enable students to define a final project to combine and intersect the above areas.
View course details in MyPlan: CSS 545

CSS 548 Introduction to Compilers (5)
Introduces the structures and organization of programming languages; fundamentals of translation; regular expressions and context-free grammars; syntax lexical analysis, symbol tables, semantics and parsing, code generation; translation techniques such as LR, LL, and recursive descent. Offered: A.
View course details in MyPlan: CSS 548

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 for credit 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. Prerequisite: Cannot be taken for credit if CSS 451 already taken; 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 555 Evaluating Software Design (5)
Studies best software engineering practices and methods used in prescriptive and agile approached to create and evaluate software design from an quality principled point-of-view. Considers design from quality dimensions such as performance, scalability, maintainability, usability, and security.
View course details in MyPlan: CSS 555

CSS 565 Research Methods in Software Development (5)
In-depth study of research design and data analysis techniques for computing-related research activities. Students prepare a research proposal; examine experimental, quasi-experimental, and qualitative design strategies; perform meta-analytic research, define and collect appropriate software metrics; and perform appropriate advanced statistical analyses.
View course details in MyPlan: CSS 565

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 572 Evidence-Based Design (5)
Provides a foundation in evidence-based user-centered design theory, methods, and practices for creating innovative software-enabled products.
View course details in MyPlan: CSS 572

CSS 576 Cybersecurity and Artificial Intelligence (5)
Examines the interaction of artificial intelligence and cybersecurity. Covers topics such as data acquisition, model training, applications of AI to cybersecurity, the interaction of AI and humans in security, and securing AI-based systems. Recommended: familiarity with applied machine learning or cybersecurity concepts. Offered: W.
View course details in MyPlan: CSS 576

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 579 Malware and Attack Reverse Engineering (5)
Explores techniques and technologies for understanding the operation of malicious software and attacks. Discusses and explores techniques for detection, identification and prevention. Presents reverse engineering of code and network exploits as a method for understanding and development of countermeasures.
View course details in MyPlan: CSS 579

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 583 Knowledge Management Systems (5)
Explores contemporary theoretical and practical implications of how to create and manage knowledge as acquired using technology. Uses different strategies such as XML, RDF, RDFS, and other approaches to provide methods and structures to organize and reference data for use within a variety of knowledge domains.
View course details in MyPlan: CSS 583

CSS 584 Multimedia Database Systems (5)
Discusses core concepts for multimedia data representation and compression. Introduces state-of-the-art techniques for multimedia data processing; compression, indexing and retrieval. Examines various multimedia systems; tools and applications.
View course details in MyPlan: CSS 584

CSS 586 Deep Learning and Artificial Intelligence (5)
Develops an understanding of deep learning and explores new research directions and applications in artificial intelligence. Explores a selected list of new, cutting-edge topics such as convolutional neural networks, generative models, and deep geometric learning. Discusses new application domains of deep learning such as autonomous driving and protein structure prediction. Basic understanding of machine learning is required. Prerequisite: CSS 581.
View course details in MyPlan: CSS 586

CSS 587 Advanced Topics in Computer Vision (5)
Covers advanced topics in computer vision. Includes image and video databases, object recognition, video processing, scene reconstruction, and robot vision. Students implement projects on current topics in computer vision research.
View course details in MyPlan: CSS 587

CSS 590 Special Topics in Computing (5, max. 15)
Special topics in computer science and software engineering. Prerequisite: permission of instructor.
View course details in MyPlan: CSS 590

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

CSS 595 Master's Project ([1-10]-, max. 40)
Students apply their knowledge and skills related to computer science and software engineering in a culminating capstone project. Credit/no-credit only.
View course details in MyPlan: CSS 595

CSS 599 Faculty Research Seminar (1)
Weekly seminars on current research topics in computer science, software engineering, or cybersecurity engineering.
View course details in MyPlan: CSS 599

CSS 600 Independent Study or Research (1-10, max. 30)
Independent study or research on computing topics conducted under the direction of one or more instructors. Offered: AWSpS.
View course details in MyPlan: CSS 600

CSS 601 INTERNSHIP (1-5, max. 10)
Graduate internship under the supervision of a CSS faulty member.
View course details in MyPlan: CSS 601

CSS 700 Master's Thesis (*-)
View course details in MyPlan: CSS 700