Upper Division

ECS 153C: Computer & Information Security & Privacy III

Subject
ECS 153C
Title
Computer & Information Security & Privacy III
Status
Active
Units
4.0
Effective Term
2026 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Testing, operation and maintenance of systems; assurance in practice; software life cycles; secure programming; formal methods; social aspects of assurance. GE: SE
Prerequisites
ECS 153B
Enrollment Restrictions
Pass One open to Computer Science and Computer Science & Engineering majors only.
Expanded Course Description

Summary of Course Content

1. What is assurance: high assurance vs. low assurance; security requirements; reference monitors; gathering assurance evidence; documentation for appropriate audiences
 2. Testing: fuzzing, unit testing, system testing, red teaming, vulnerability categorization and analysis; static and dynamic analysis; use of artificial intelligence/machine learning 
 3. Assurance in practice: how it is done, its effect on other system characteristics such as performance; various methodologies
 4. Secure programming: review of design principles; defensive programming; robust programming; programming to meet security requirements
 5. Privacy: privacy by design, anonymization techniques, differential privacy, computation of quasi-identifiers
 6. Formal methods: theoretical basis, environment; methodologies, languages such as Z, HOL, SML, Larch; proof systems such as Isabelle; verification
 7. Social aspects of security: importance, reliance, resilience, disinformation
 8. Machine learning and large language models in security; security of machine learning systems
 9. Current topics in computer and information assurance

Illustrative Reading

* T. Nipkow, G. Klein, Concrete Semantics: With Isabelle/HOL, 2016
* R. Seacord, Secure Coding in C and C++ (SEI Series in Software Engineering), 2nd Edition, 2013
* Selected readings from the research literature

Potential Course Overlap

The content of this course overlaps some with course 153B. This course focuses on information and computer assurance as opposed to security. Privacy is included here as well as in 153B because of the assurance component of maximizing the difficulty of deanonymization, which defines a level of assurance evidence.

Course Category

ECS 153B: Computer & Information Security & Privacy II

Subject
ECS 153B
Title
Computer & Information Security & Privacy II
Status
Active
Units
4.0
Effective Term
2026 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Security and privacy models; introduction to cryptography; network security; securing systems and networks in practice; auditing and intrusion detection; information flow; malware and malware analysis; penetration testing; introduction to "secure" programming; business and other governance models and rules. GE: SE
Prerequisites
ECS 153A
Enrollment Restrictions
Pass One open to Computer Science and Computer Science & Engineering majors only.
Expanded Course Description

Summary of Course Content

1. What are security and privacy: notion of an informal policy, formalization of policy
 2. Encryption: classical, public-key; implementation, problems; AES, RSA, elliptic curves
 3. Authentication: model of authentication systems, traditional passwords, challenge/response, one-time passwords; cryptographic protocols, simple cryptosystems; implementations of authentication mechanisms
 4. Access control: controlling access to resources, access matrix model, undecidability result, access control lists and capability lists; mandatory controls, discretionary controls, originator controls; variants such as role-based access control
 5. Integrity: cryptographic checksums, malicious logic, viruses, Trojan horses; defenses, prevention; UNIX integrity checking tools and how they work; malicious logic and UNIX
 6. Networks and security: Internet Security Architecture, analysis of Internet protocols, design and implementation considerations; firewalls; intrusion detection
 7. Penetration analysis: common types of flaws, examples, flaw hypothesis methodology, analysis of programs and systems
 8. Privacy and anonymity: definitions, goals, methods such as k-anonymity, differential privacy
 9. Information flow for integrity, confidentiality
10. Current topics in computer security and information assurance

Illustrative Reading

M. Bishop, Computer Security: Art and Science, 2nd Edition, Addison-Wesley Professional, 2018
R. Anderson, Security Engineering, John Wiley & Sons. 2020
C. Pfleeger, S. L. Pfleeger, L. Coles-Kemp, Security in Computing, Sixth Edition, 2023

Potential Course Overlap

The content of this course overlaps some with course 153A, and is for those who intend, or are considering, to focus on cybersecurity. It expands on topics covered in ECS 153A, providing both technical detail and depth.

Course Category

ECS 179: Gameplay Programming

Subject
ECS 179
Title
Gameplay Programming
Status
Active
Units
4.0
Effective Term
2024 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Developing gameplay systems in the context of game design and software engineering. Aspects of technical game development that depend on the genre or details of a specific game design, thus making them difficult to abstract and engineer into game engines.
Prerequisites
ECS 032B or ECS 036C; extensive programming experience recommended
Enrollment Restrictions
Pass One restricted to Computer Science and Computer Science & Engineering majors; Pass Two restricted to undergraduates.
Expanded Course Description

Summary of Course Content

A detailed syllabus including schedule, readings, assessments, and activities can be found here:
  GitHub - dr-jam/GameplayProgramming: Gameplay Programming

  1. Orientation:
    1. Game engines and game creation technology
    2. Ontology and structure of game development
    3. Practice-based introduction to Game Engines
    4. Understanding game design as a developer
  2. Software Engineering for Game Development
    1. Structuring gameplay systems
    2. Code style guides, best practices, and software code support
    3. Design Patterns
    4. Peer Code Reviews
    5. Versioning Systems
    6. Project and group organization
  3. Game Design and Production
    1. Game Mechanics, Rules, and Systems.
    2. Interactivity and UI/UX.
    3. Game Design Documents
    4. Play Testing
    5. Gameplay System Design and Analysis
    6. Structure of game studios from indie to AAA
  4. Employed Technologies
    1. Game engine and related programming language.
    2. Versioning Systems and Source Code Control
    3. Asset Creation Tools
  5. Current and Advanced Topics
    1. AI for Games
    2. Procedural Content Generation
    3. Design and Development Support Tools

Illustrative Reading

Game Programming Patterns by Nystrom

Rules of Play by Salen Tekinbas and Zimmerman: [UCD Library] [pdf]

Game Feel by Swink: [UCD LIbrary] [pdf]

The assigned and supplementary readings are curated from well-known game design and development resources: https://github.com/dr-jam/GameplayProgramming#learning-the-basics

Potential Course Overlap

ECS 160: Software Engineering - While not stated directly in  ECS160’s Summary of Course Content, there may be overlap in learning the use cases and implementation of several software design patterns. There may be coincidences between the learning and using team software development tools and methodologies between the classes.

 

ECS 161: Modern Programming Tools - Integrated Development Environments - Game engines interface with IDEs and will both be extensively used by students.

 

ECS 164: Human-Computer Interaction - Concepts and Principles of Interaction Design - There may be an overlap of basic concepts between HCI-based and game design-based design philosophies; Prototyping; Design Criticism and iteration - Both are part of the game development cycle for the class project.

 

ECS 170: Introduction to Artificial Intelligence - A* and Pathplanning - Part of the AI module is learning the basics of A* and one of the projects features the use of a navmesh system for pathplanning.

 

CDM176 Game Platforms - Both classes cover discussion related to game design and basic game development literacy including game design documents, the indie game development process, and an overview of game engines.

Course Category

ECS 166: Evaluating User Interactions

Subject
ECS 166
Title
Evaluating User Interactions
Status
Active
Units
4.0
Effective Term
2025 Fall Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Introduction to principles, processes, and methods for evaluating how users use and interact with computing systems and technologies. GE: SE
Prerequisites
ECS 032B or ECS 36C
Enrollment Restrictions
Pass one open to Computer Science and Computer Science & Engineering majors only
Expanded Course Description

Summary of Course Content:

As many applications and technologies demand quality user experiences and usable interactions between users and the systems, it is a critical step of the system development process to evaluate how well users interact with the systems. One challenge in evaluating how users interact with technologies resides at the complex dependencies between technological and human factors involved in such interactions, which raises the need for researchers to select and employ appropriate research methods to ensure the validity and reliability of user studies. In this course, students will learn about the characteristics, constraints and examples of different research methods for conducting user studies. Students will learn how to motivate user research, how to ask research questions, how to choose methods, how to design measures, and how to collect, analyze and report data. Topics will include:

  1. Overview of user studies
  2. Qualitative and quantitative research strategies
  3. Experimental research and design
  4. Fundamentals in quantitative measurement and analysis
  5. Task analysis and heuristics
  6. Self-report data collection -  surveys and diaries
  7. Interactive data collection - interview and focus groups
  8. Unobtrusive data collection - observations and logging
  9. Qualitative and fields studies
  10. Research ethics
  11. Evaluating user interactions with non-human agents (e.g., chatbots, recommender systems)

 

Specific learning goals of this course include:

  1. Understand the key principles, criteria and goals of user studies in technology evaluation
  2. Understand the characteristics and trade-offs of different research methods
  3. Being able to ask good research questions for user studies and identifying suitable methods and measures for the target questions
  4. Being able to engage in the process of developing user study protocols for evaluating targeted systems
  5. Being able to critically discuss the validity and reliability of specific study designs, and revising the study designs.
  6. Possessing the awareness of emerging issues and challenges for evaluating new technologies.

Illustrative Reading

Research Methods in Human-Computer Interaction (2nd Edition) Authors: Jonathan Lazar Jinjuan Feng Harry Hochheiser

Potential Course Overlap

The course is to supplement ECS 164 Human-Computer Interaction with a different emphasis. This course focuses on designing user studies, controlled experiments, interview protocols, and data analysis etc. to evaluate how well users use and interact with the target systems. ECS 164 on the other hand is a general HCI course covering the breadth of HCI, and with a specific focus on using a standard user-centered design process for constructing new systems.

Course Category

ECS 119: Data Processing Pipelines

Subject
ECS 119
Title
Data Processing Pipelines
Status
Active
Units
4.0
Effective Term
2024 Spring Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Introduction to software systems for processing large datasets. Hands-on experience with scripting, data streams, distributed computing, and software development and deployment infrastructure. GE: SE.
Prerequisites
ECS 116 or ECS 165A
Enrollment Restrictions
Pass One restricted to Data Science majors; Pass Two restricted to undergraduate students. Not intended for Computer Science or Computer Science & Engineering majors.
Expanded Course Description

Summary of Course Content:

Tools, Processes and Ethical Considerations associated with building systems that use large datasets. 

  1. Basics of big data processing
    1. Sources of big data: databases, real-time data
    2. Pipelining in Unix
    3. Scripting in Python
  2. Software engineering tools
    1. Debugging and IDE
    2. Version control, eg. Git
    3. Virtualization e.g., Docker
    4. Orchestration, e.g., Puppet, Salt.
  3. Organizing teams for Big Data Systems.
    1. Deciding Goals & Requirements
    2. Ethics of Big Data Systems
    3. Testing and Quality assurance
  4. Programming for streaming data
    1. Data streams in Python
    2. Data streams in R
  5. Distributed processing
    1. Parallel algorithms and parallel thinking
    2. MapReduce/Hadoop processing model
    3. Distributed files and the Hadoop Distributed Filesystem
    4. Communication between nodes
    5. Distributed data structures, and distributed streaming, eg. SPARK, Yarn

Illustrative Reading:

Nandhini Abirami R, Seifedine Kadry, Amir H. Gandomi, and Balamurugan Balusamy, Big Data: Concepts, Technology, and Architecture, Wiley; 1st edition (April 13, 2021) ISBN-13: 978-1119701828

Potential Course Overlap:

This course has minimal overlap with ECS 158; it focuses on software development at a higher level of abstraction for big data processing systems, and will not cover low-level primitives such as locks, shared-memory concurrency, and message passing. This course overlaps with ECS 161 in covering the basics of version control and build systems.

Final Exam:
Yes Final Exam
 

Course Category

ECS 111: Applied Machine Learning for Non-Majors

Subject
ECS 111
Title
Applied Machine Learning for Non-Majors
Status
Active
Units
4.0
Effective Term
2023 Fall Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Machine learning methods and their application. Theory, design and evaluation of supervised/unsupervised machine learning algorithms. Practical use of matching learning methods and their challenges. GE: SE.
Prerequisites
(ECS 032B or ECS 036C); (MAT 135A or STA 035B or STA 131A or MAT 107); (MAT 22A or MAT 27A or MAT 67)
Credit Limitation
No credit if student has taken ECS 171; not intended for Computer Science and Computer Science Engineering Majors.
Enrollment Restrictions
Pass One restricted to Data Science majors; Pass Two restricted to undergraduates.
Expanded Course Description

Summary of Course Content
An introduction to preliminaries of machine learning methods, their theory and applications. This course focuses on the challenges of applying machine learning solutions to problems in several popular domains, such as object recognition, real-estate housing price prediction, computer security, mobile health, and cloud resource management. Students will explore the application and practical aspects of supervised learning, unsupervised learning, reinforcement learning, and deep learning applied to various problems such as sequence classification, image classification, and time-series prediction. Through hands-on projects and examples as well as programming assignments, students practice the implementation aspect of developing machine learning solutions using various libraries and tools for information visualization, such as matplotlib, Bokeh, leather. Furthermore, students exercise incorporating important Python packages such as scikit learn, tensorflow and keras in-depth.   

  1. Exploratory Data Analysis and Visualization
  2. Supervised learning
    1. Regression
    2. Support Vector Machines
    3. Naive Bayes Classifiers
    4. K-Nearest Neighbors
    5. Artificial Neural Networks
    6. Ensemble Learning
  3. Unsupervised learning
    1. Clustering (K-means, Fuzzy C-means, hierarchical)
    2. Dimensionality reduction methods (t-SNE, PCA)
  4. Deep Learning
    1. Types of neurons and learning single neurons
    2. Learning networks of neurons
    3. Classic network structures
      1. Auto-encoder
      2. Convolutional Neural Networks
      3. Generative Neural Networks
      4. Generative Adversarial Networks
  5. Evaluation Metrics
  6. ML applications
    1. Real-Estate Housing Price Prediction
    2. Image understanding and object detection
    3. Computer Security
    4. Mobile Health
    5. Cloud Resource Management
  7. Ethics in Machine Learning

Goals
Students will (1) Acquire fundamental knowledge of learning theory; (2) Learn how to design and evaluate supervised and unsupervised machine learning algorithms; (3) Understand the challenges related to application of ML in different domains; and (4) Learn how to use machine learning methods for multivariate data analysis in various scientific field domains.

Illustrative Reading
Setareh Rafatirad, Houman Homayoun, Zhiqian Chen, and Sai Manoj Pudukotai Dinakarrao, Machine Learning for Computer Scientists and Data Analysts, From Applied Perspective, Springer,  ISBN 978-3-030-96756-7

Potential Course Overlap
Course overlaps with  ECS 171  in terms of machine learning techniques, which are used for deeper understanding of data through predictive analysis and building insightful models to discover the meaning of data. Course has minimal overlap with ECS 170 in terms of AI.

Course Category

ECS 117: Algorithms for Data Science

Subject
ECS 117
Title
Algorithms for Data Science
Status
Active
Units
4.0
Effective Term
2022 Fall Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Algorithms for searching, pattern matching, combinatorial problems, clustering, and time series analysis with practical emphasis. Not open for credit for students who have completed ECS 122A. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 017 or ECS 020; ECS 032B or ECS 036C
Credit Limitation
Not open for credit for students who have completed ECS 122A
Enrollment Restrictions
Not intended for Computer Science or Computer Science & Engineering majors.
Expanded Course Description

Summary of Course Content:

  1. Searching, pattern matching, hashing.
  2. Algorithm design techniques and applications: divide-conquer, greedy, dynamic programming.
  3. Algorithm efficiency, complexity, survey of intractability and NP-completeness.
  4. Selected Data Science topics: clustering, text processing, time series analysis

Goals: Students will: (1) learn methods for designing efficient algorithms and evaluating their performance, (2) learn standard algorithms for fundamental problems, and (3) gain experience applying algorithms to common scenarios in data science.

Computer Usage/Programming homeworks:
Each homework includes problems related to the basic mathematical and algorithmic concepts and techniques discussed in class. Students will use R or Python, and associated data processing libraries, as a problem-solving environment for case studies drawn from common data science scenarios. With these the students will develop appreciation for the connection between algorithm theory and data science problems and solutions. The programming homeworks will enhance the learning of R/Python which will be useful in a data scientist’s career.


Engineering Design Statement:
Written assignments often (25-50% of time) contain problems involving the design and analysis of algorithms for a particular type of computer system. The students are given a general description of the problem to be solved and the general parameters of the computer system which is to be used to solve the problem. The students are then expected to design a detailed solution consisting of both standard routines and new routines which they design. They are also expected to justify the correctness of their solution and to analyze its expected performance. Examination questions also test the design and analysis techniques learned through the homework assignments.

Illustrative Reading:

T.  Cormen, C. Leiserson, R. Rivest, and C. Stein. Introduction to Algorithms, 3rd edition.  


Potential Course Overlap:

Clustering is also covered in ECS 111 and ECS 170/171, but more theoretically, while this in course the emphasis will be more practical. Algorithms are also covered in ECS 122A, but from a theoretical perspective, while in this course the emphasis will be on practical approaches and exercises.


Final Exam:
Yes Final Exam

Course Category

ECS 116: Databases for Non-Majors

Subject
ECS 116
Title
Databases for Non-Majors
Status
Active
Units
4.0
Effective Term
2022 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Overview of Database Systems, Conceptual Modeling and Design, E/R diagrams, Relational Model, Relational Algebra, SQL, File and Index Structures, Query Evaluation, Transaction Concepts, Concurrency and Recovery, and NoSQL Databases. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 032B or ECS 36C
Credit Limitation
Not open for credit for students who have completed ECS 165A or ECS 165B.
Enrollment Restrictions
Not intended for Computer Science or Computer Science & Engineering majors.
Expanded Course Description

Summary of Course Content:

Overview of Database Systems, Conceptual Modeling and Design, Entity-Relationship (E/R)
diagrams, Relational Model, Relational Algebra, Structured Query Language (SQL), File and
Index Structures, Query Evaluation, Transaction Concepts, Concurrency and Recovery, and
NoSQL Databases. An outline of the topics covered follows:

  1. Overview of Database Systems
    1. Use of database systems
    2. Data models and database languages
    3. Architectures
  2. Conceptual Modeling and Design
    1. Design issues
    2. Entity-Relationship (E/R) diagrams
    3. Mapping to tables
  3. Relational Model
    1. Structure of the model
    2. Relational algebra
  4. Structured Query Language (SQL)
    1. Basic concepts
    2. Simple and complex select statements, subqueries
    3. Aggregate and set functions
    4. Database modifications
  5. File and Index Structures
    1. Organization of records in a file
    2. Indexing, B+ tree index files
  6. Query Processing
    1. Query cost and cost estimation
    2. Selection, sorting and joins
    3. Query rewriting
  7. Transaction Management
    1. Transaction concepts
    2. Concurrent execution, serializability
    3. Recovery
  8. NoSQL Databases
    1. Google Bigtables and Firebase
    2. Amazon DynamoDB and Redshift
    3. MongoDB and Neo4j


Illustrative Reading:

Database Management Systems (DBMS), 3rd Edition. Raghu Ramakrishnan and J. Gehrke.
McGraw Hill, 2003, ISBN 0-07-246563-8

Potential Course Overlap:

This course overlaps in some material with ECS 165A and ECS 165B; however, ECS 165A/B go much deeper into the focused material. ECS 165A focuses on relational database theory and system while 165B focuses on non-relational models such as graph and spatial data along with nested query languages such XML and further covers advanced topics such as data integration and provenance. In contrast, this course in addition to introducing the basics of relational model system/theory, it focuses on practical applications of modern databases such as Bigtables, Firebase, Amazon DynamoDB, Redshift, MongoDB, Neo4; indeed a more hands-on/applied view of databases.

Course Category

ECS 115: Computer Networks for Non-Majors

Subject
ECS 115
Title
Computer Networks for Non-Majors
Status
Active
Units
4.0
Effective Term
2021 Fall Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Overview of computer networks, World Wide Web, email, local & wide-area computer networks, TCP/IP protocol suite, network protocols for data transmission, introduction to network programming. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 032B or ECS 36C
Credit Limitation
No credit for students who have completed any of ECS 152A, ECS 152B, ECS 152C, EEC 173A, or EEC 173B.
Enrollment Restrictions
Not intended for Computer Science or Computer Science & Engineering majors.
Expanded Course Description

Summary of Course Content:

  1. Introduction
    1. Wide Area Networks (WANs)
    2. Local Area Networks (LANs)
    3. Terminology
    4. Introduction to OSI standards
  2. Networking Applications
    1. Network Library Routines
    2. File Transfer Protocol (FTP)
    3. Hypertext Transfer Protocol (HTTP)
    4. Telnet / Remote Login
    5. Domain Name System (DNS)
    6. Electronic Mail
    7. Peer-to-Peer File Sharing
  3. Internetworking (TCP/IP)
    1. User Datagram Protocol (UDP)
    2. Transmission Control Protocol (TCP)
    3. Transport Layer Interfaces
    4. Internet Protocol (IP)
    5. Routing protocols
  4. Local Area Networks
    1. Link layer protocols
    2. Channel Partitioning: FDMA, TDMA, CDMA
    3. Random Access: ALOHA, CSMA/CD
    4. Ethernet
    5. Wireless LANs


Illustrative Reading:

J. Kurose and K. Ross, Computer Networking: A Top-down approach featuring the Internet, Addison Wesley, third edition, 2005


Potential Course Overlap:

This course is a shorter version of courses 152A (cross list EEC 173A) and 152B, thus with
overlap, but aimed at the non-major audience. Course 152C (cross list EEC 173B) requires
course 152A as a prerequisite so is more advanced than course 152A. MGT 286 covers some of
the topics, but focuses on the economic aspects.

Course Category

ECS 191: Software Design Project

Subject
ECS 191
Title
Software Design Project
Status
Active
Units
4.0
Effective Term
2021 Fall Quarter
Learning Activities
Lecture - 2.0 hours
Lecture/Discussion - 2.0 hours
Description
Student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. Project proposed and supervised by a faculty member. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 160
Enrollment Restrictions
Pass One open to Computer Science and Computer Science Engineering Majors only.
Expanded Course Description

Summary of Course Content:
Each project team will be given a set of requirements to a computer-science-related design problem, propose a design that solves the problem, implement a prototype design, validate the design and report on the results. Deliverables will include written design documents, an implementation of the design and oral presentations on the progress and results of the project. Lecture topics will be related to software project development such as use case analysis, UX/UI analysis, etc.

Illustrative Reading:
Instructor notes

Potential Course Overlap:
There is overlap with ECS 193 A/B in that students work in teams on a large-scale project; however, ECS 193 A/B differs in that the projects are open ended and proposed from various sources, where projects for ECS 191 are designed by the instructor and at least initial progress goals are given by the instructor.

Course Category