Upper Division

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. No credit if student has taken ECS 171; not intended for Computer Science and Computer Science Engineering Majors. GE: SE.
Prerequisites
(ECS 032B or ECS 036C); (MAT 135A or STA 035C)
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.

Final Exam
Yes Final Exam

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. Not open for credit for students who have completed ECS 165A or ECS 165B. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 032B
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.



Final Exam:
Yes Final Exam

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. No credit for students who have completed any of ECS 152A, ECS 152B, ECS 152C, EEC 173A, or EEC 173B. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
ECS 032B
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.



Final Exam:
Yes Final Exam

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

ECS 172: Recommender Systems

Subject
ECS 172
Title
Recommender Systems
Status
Active
Units
4.0
Effective Term
2020 Spring Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Collaborative filtering and content-based methods for building recommender systems. Statistical, matrix factorization, textual analysis, and nearest-neighbor approaches. Case studies. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
(ECS 032B or ECS 036B or ECS 040); (ECS 132 or STA 130A or STA 131A or ECN 140); (MAT 022A or MAT 027A or MAT 067)
Enrollment Restrictions
Pass One restricted to Computer Science and Computer Science & Engineering students only.
Expanded Course Description

 

Summary of Course Content:

  1. Review of probability concepts and linear algebra (both illustrated with R or NumPy).
  2. Collaborative filtering methods:
    Applied predictive modeling:  User's-view treatment of Machine Learning methods (linear/logistic regression, random forests, neural nets, nearest-neighbor); Matrix factorization models.
  3. Content-based recommendations
    Overview of text classification methods, including software; content-based systems
  4. Graphical models and methods
  5. Google PageRank
  6. Applications and case studies

Illustrative Reading:

Textbook:  Charu Aggarwal, "Recommender Systems: the Textbook," Springer, 2016, 498 pp., and/or instructor's notes; published case studies.

Potential Course Overlap:
About 5% of the material overlaps course 171. However, it is presented just as a brief overview, from a "user" perspective, without technical detail.  The situation is similar to the overlap between courses 174 and 171.

Final Exam:
Yes Final Exam

Course Category

ECS 199FB: Student Facilitated Teaching

Subject
ECS 199FB
Title
Student Facilitated Teaching
Status
Active
Units
4.0
Learning Activities
Variable - 1.0 to 4.0 hours
Description
STU FAC. Under the supervision of a faculty member, an undergraduate student teaches a course under 098F/198F.
Prerequisites
ECS 199FA; Consent of Instructor.
Enrollment Restrictions
Suppress CRN in Schedule.
Expanded Course Description

Summary of Course Content
Students teaching 98F or 198F enroll during the same quarter that they are teaching the course. The course provides academic credit to the student instructor for delivery of the course and associated preparation.

Illustrative Reading
Varies by topic

Potential Course Overlap
None

Course Category

ECS 199FA: Student Facilitated Course Development

Subject
ECS 199FA
Title
Student Facilitated Course Development
Status
Active
Units
4.0
Effective Term
2016 Winter Quarter
Learning Activities
Variable - 1.0 to 4.0 hours
Description
Under the supervision of a faculty member, an undergraduate student plans and develops the course they will offer under 098F/198F.
Expanded Course Description

Summary of Course Content
Students intending to teach a course 98F/198F work with a faculty mentor, who serves as the instructor of record, to develop and plan the course they will offer, typically in the quarter immediately following the one in which they are enrolled in course 199FA.

Illustrative Reading
Varies by topic.

Potential Course Overlap
None

Course Category