Graduate

ECS 252: Computer Networks

Subject
ECS 252
Title
Computer Networks
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Laboratory - 3.0 hours
Description
Internet protocol based computer networks applications, transport, network layer protocols. High speed LAN technologies: Ethernet, Asynchronous Transfer Mode (ATM). Delay models in data networks: analysis of multiaccess techniques in polling, ring, random access networks. Multimedia applications requirements and design.
Prerequisites
ECS 152B
Enrollment Restrictions
Pass 1 and Pass 2 open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. Overview of computer networks

II. Application Layer
A. Client-server model
B. Socket and related system calls
C. HyperText Transfer Protocol (HTTP)
D. File Transfer Protocol (FTP)
E. Domain Name Service (DNS)
F. Peer-to-peer model

III. Transport Layer
A. Priciples of reliable data transfer
B. Connection-oriented transport (TCP)
C. Principles of congestion control
D. TCP congestion control

IV. Network Layer
A. Routing principles
B. Internet Protocol
C. Routing in the Internet
D. Router architectures
E. Multicast routing

V. Local Area Networks
A. Multiple access protocols and LANs
B. Ethernet and token ring
C. Aysnchronous Transfer Mode (ATM)

VI. Delay Models
A. Little's Theorem
B. M/M/1 system
C. Generalized state dependent arrival and service system
D. M/G/1 system
E. Polling system
F. Random access system

VII. Multimedia Networking
A. Multimedia applications
B. RTP and RTSP
C. IP Telephony using best effort service
D. Beyond best-effort
E. QoS architecture

Laboratory/Project/Term Paper:

Students work individually or in small groups on a course project. The projects will complement and extend the lecture material. The project may include: (1) implementation of a network protocol, or (2) proposal/design of a new protocol or extension of an existing one followed by its evaluation via computer simulation (and mathematical analysis, whenever possible). Students therefore gain hands-on experience in network protocol design, development, and analysis.

Engineering Design Statement:

The course project includes design, development, and implementation issues in computer network protocols and architectures. Lectures discuss various design issues in computer networks, implementation of the protocols, and tradeoffs between various performance measures such as delay and thruput. The homework and exam problems are based on design issues discussed in lecture.



Illustrative Reading
Textbooks:

J.E. Kurose and K.W. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addision-Wesley, 2000

D. Bertsekas and R. Gallager, Data Networks, Prentice Hall, 1992

W. Stallings, Local and Metropolitan Area Networks, fifth edition, Prentice Hall, 1997

References:

Selected papers from the recent literature.



Potential Course Overlap
There is no significant overlap with other courses since this course builds the foundation for advance networking courses.

Course Category

ECS 251: Operating Systems

Subject
ECS 251
Title
Operating Systems
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Description
Models, design, implementation, performance evaluation in operating systems. Algorithms, internal architectures for single processor OS and distributed systems. Concurrency control, recovery, security. OS kernel-level programming. Special topics embedded systems, real-time system, device driver, NPU (Network Processor Unit).
Prerequisites
ECS 150
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. OS Structure
Monolithic and Structured Kernel, Micro-Kernel, Processes, Threads, Events, Servers, OS Extensibility

II. Scheduling and Process Control
Context Switching, Process Management, Scheduling Algorithms, Interrupt, Device Drivers

III. Concurrency Control and Recovery
Synchronization, Deadlock, Priority Inversion, Fault Tolerance and Recovery

IV. File/Storage Systems and Memory Management
Disk Management, I/O Subsystems, Virtual Memory Management, Distributed Shared Memory, Security and Access Control, File System Structure, Distributed File Systems

V. Performance Evaluation and Monitoring VI. Special OS Topics
Communication Models, Domain-specific Operating Systems (Real-time, Embedded, Network OS, etc.) , Distributed operating systems, Distributed system issues, Embedded systems, Real-time systems, and NPU (Network Processor Unit)

Programming Projects:

The instructor will assign two problems during the quarter, one will be related to scheduling and concurrency and the other will be related to memory management or file systems. The two programming assignments will give students an opportunity to understand the principles deeply.



Illustrative Reading
Deitel, Deitel, and Chofnes, Operating Systems, 3rd edition, Prentice-Hall, 2004, ISBN:0-13-124696-8



Potential Course Overlap
There is no significant overlap with other courses.

Course Category

ECS 247: Concurrent Programming Languages

Subject
ECS 247
Title
Concurrent Programming Languages
Status
Active
Units
4.0
Effective Term
2016 Fall Quarter
Learning Activities
Lecture - 3.0 hours
Laboratory - 3.0 hours
Description
Language design parameters. Models of parallel machines. Load balancing. Scalability. Portability. Efficiency measures. Design and implementation techniques for several classes of concurrent programming languages (such as object-oriented, functional, logic, and constraint programming languages).
Prerequisites
ECS 140A; ECS 150
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Course Category

ECS 244: Principles of Concurrent Programming

Subject
ECS 244
Title
Principles of Concurrent Programming
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Laboratory - 3.0 hours
Description
Fundamental concepts and applications of concurrent programs; concurrent program verification and derivation; synchronization mechanisms in programming languages; distributed programming techniques; case studies of languages.
Prerequisites
ECS 020; ECS 150
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. Fundamental Concepts
A. Programming logics
1) Program notation
2) Inference rules for proof outline logic (PL)

B. Sequential programming
1) Invariants
2) Proofs in PL
3) Weakest precondition
4) Program derivation

C. Processes and Process Interaction
1) Concurrency
2) Interference
3) Synchronization
4) Critical section problem

II. Synchronization Based on Shared Variables
A. Busy Waiting
1) Techniques
2) Correctness proofs

B. Semaphores
1) Derivation method
2) Change of variables method
3) Passing the baton method

C. Conditional critical regions
1) Concepts
2) Proof rules
3) Implementation

D. Monitors
1) Concepts
2) Formal semantics
3) Derivation method
4) Implementation
5) Alternative signaling methods

III. Synchronization Based on Message Passing
A. Asynchronous message-passing
1) Naming
2) Synchronization
3) Conversations
4) Implementations

B. Synchronous message-passing
1) Remote procedure call
2) Rendezvous

C. Remote operations
1) Generating invocations
2) Servicing invocations

D. Distributed synchronization
1)Time
2)Clocks

Homework:

Each homework set includes programming problems (see Laboratory section below) in addition to problems dealing with program derivation, correctness proofs, developing inference rules and implementation techniques.

Laboratory:

Students work individually or in small groups on several programming problems, which are an integral part of the homework sets. These projects are designed to reinforce and complement the lecture material. The specific problems are programmed using the JR concurrent programming language. For shared variables, semaphores, and rendezvous problems, students write programs in native JR. For CCRs (Conditional Critical Regions), monitors, and CSP (Communicating Sequential Processes) problems, students write programs using preprocessors for JR that support those notations. Students therefore gain hands-on experience in using a wide range of synchronization mechanisms.

Engineering Design Statement:

The course material includes design and implementation issues in concurrent programming. Lectures discuss various synchronization mechanisms, how they are implemented, and the tradeoffs (usability, efficiency, etc.) between them. The homeworks sets including the laboratory problems follow these themes too. They also examine in detail the different programming styles that result in using the different constructs. Homework sets grades are based in part on these design issues. Examination questions are based on design issues discussed in lecture and from the homeworks.

ABET Category Content:

Engineering Science: 2 units
Engineering Design: 2 units



Illustrative Reading
G.R. Andrews, Concurrent Programming: Principles and Practice, Benjamin/ Cummings, 1991

R.A. Olsson and A.W. Keen, The JR Programming Language: Concurrent Programming in an Extended Java (draft)



Potential Course Overlap
There is no significant overlap with any other course.

Course Category

ECS 243: Code Generation & Optimization

Subject
ECS 243
Title
Code Generation & Optimization
Status
Active
Units
4.0
Effective Term
2016 Fall Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Description
Compiler optimizations for performance, code size and power reduction. Topics include control- and data-flow analysis, redundancy elimination, loop and cache optimizations, register allocation, local and global instruction scheduling, and modulo scheduling.
Prerequisites
ECS 201A or EEC 270
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. Introduction
A. Overall compiler organization: frontend, backend
B. Intermediate representation: high-level, low level
C. Backend organization

II. Control-Flow Analysis
A. Basic blocks
B. Control-flow graph
C. Dominators
D. Loops
E. Call graph
F. Program profiling

III. Control-Oriented Optimizations
A. Local Instruction Scheduling
B. Global Instruction Scheduling
C. Branch Alignment
D. Procedure ordering
E. Unreachable Code Elimination

IV. Loop-Oriented Optimizations
A. Loop-Invariant Code Motion
B. Induction Variable Elimination
C. Loop Unrolling
D. Modulo Scheduling
E. Loop Reversal, Interchange, Pealing, Fission, Fusion, Unswitching, Collapsing

V. Data-Flow Analysis
A. Data Dependence
B. Aliasing
C. Static Single Assignment
D. Reaching Definitions
E. Def-Use Chains, Use-Def Chains
F. Bit-Vector Iterative Analysis
G. Live-Range Analysis (Web Analysis)
H. Symbolic-Register Renumbering, Interference
I. Available Expressions
J. Value Numbering

VI. Data-Oriented Optimizations
A. Dead-Code Elimination
B. Copy propagation
C. Code Hoisting/Sinking
D. Common Sub-Expression Elimination
E. Partial Redundancy Elimination
F. Strength Reduction
G. Register Allocation



Illustrative Reading
K.Cooper and L. Torczon, Engineering A Compiler (chapters 8-13), Morgan Kaufmann, 2003
Plus papers from the literature.



Potential Course Overlap
There is no significant overlap with another course.

Course Category

ECS 242: Translation of Programming Languages

Subject
ECS 242
Title
Translation of Programming Languages
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Laboratory - 3.0 hours
Description
Lexical analysis, parsing, storage management, symbol table design, semantic analysis and code generation. LR, LALR grammars. Compilercompilers.
Prerequisites
ECS 240
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Course Category

ECS 240: Programming Languages

Subject
ECS 240
Title
Programming Languages
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Description
Advanced topics in programming languages, including formal syntax and semantics, the relation between formal semantics and verification, an introduction to the lambda calculus. Additional topics will include language design principles, alternative programming languages, in-depth semantic theory and models of language implementation.
Prerequisites
ECS 140A; ECS 142
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Course Category

ECS 236: Computer Security: Intrusion Detection Based Approach

Subject
ECS 236
Title
Computer Security: Intrusion Detection Based Approach
Status
Active
Units
4.0
Effective Term
2016 Spring Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Description
Concepts of intrusion detection, anomaly detection based on machine learning, signature-based detection using pattern matching, automated response to attacks using artificial intelligence planning, tracing intruders based on principal component analysis, security policy languages.
Prerequisites
ECS 150; ECS 153 recommended.
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. Introduction to computer security

II. Overview of intrusion detection methods

III. The many threats computers and networks are vulnerable to

IV. Anomaly detection

V. Misuse detection

VI. Machine learning methods with application to intrusion detection

VII. Correlation methods to detection multi-stage attacks

VIII. Traceback methods

IX. Automated response

Computer Usage:

Project, primarily to research and acquire an existing intrusion detection tool, and to modify it to meet a threat for which the tool was not intended to apply.



Illustrative Reading
E. Amoroso, Intrusion Detection: An Introduction to Internet Surveillance, Correlation, Trace Back, Traps, and Responses, Intrusion.Net Books, Sparta, New Jersey, 1999



Potential Course Overlap
ECS 236 is an advanced and specialized class in computer security, emphasizing the new area of intrusion detection which uses concepts from other disciplines, including artificial intelligence, programming languages, statistics, operating systems, networks, and theory of computing. It naturally complements ECS 235, which is a general overview of computer security; ECS 235 provides good background for ECS 236, but not all that is covered in 235 is essential. No other courses constitute a significant overlap.

Course Category

ECS 235B: Foundations of Computer & Information Security

Subject
ECS 235B
Title
Foundations of Computer & Information Security
Status
Active
Units
4.0
Effective Term
2016 Fall Quarter
Learning Activities
Lecture - 3.0 hours
Project (Term Project)
Description
Theoretical foundations of methods used to protect data in computer and communication systems. Access control matrix and undecidability of security; policies; Bell-LaPadula, Biba, Chinese Wall models; non-interference and non-deducibility; information flow and the confinement problem. Not open for credit to students who have taken ECS 235.
Prerequisites
ECS 235A; (ECS 120 and ECS 150 recommended.)
Credit Limitation
Not open for credit to students who have taken ECS 235.
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
I. Introduction: what is security, policies, risk analysis, humans and procedural/operational security; principles of secure design

II. Foundations: access control matrix, Harrison-Ruzzo-Ullman result, Take-Grant Protection Model, other models

III. Policies and precision; policy languages

IV. Confidentiality policies: Bell-LaPadula, System Z

V. Integrity policies: Biba, Lipners access control matrix model, Clark-Wilson

VI. Hybrid policies: Chinese Wall, Clinical Information Systems Security, Role-based access control

VII. Non-interference and non-deducibility

VIII. Information flow and the confinement problem

IX. Theory of malicious logic: computer viruses, computer worms

Paper/Project:

Paper surveying a topic in computer security in depth (expected length 20 pages) or a project exploring some aspect of the foundations of computer security. These may be individual or group efforts.



Illustrative Reading
M. Bishop, Computer Security: Art and Science, Addison-Wesley 2003 ; various papers

Potential Course Overlap
This course does not overlap with any other course. ECS 153, which mentions one result and gives a very high-level view of some of the models, does not discuss the details of those results, their proofs, or the underlying principles presented in this course, and focuses instead on applications.

Course Category

ECS 235A: Computer & Information Security

Subject
ECS 235A
Title
Computer & Information Security
Status
Active
Units
4.0
Effective Term
2016 Fall Quarter
Learning Activities
Lecture - 3.0 hours
Project (Term Project)
Description
Modern topics in computer security, including: protection, access control, operating systems security, network security, applied cryptography, cryptographic protocols, secure programming practices, safe languages, mobile code, malware, privacy and anonymity, and case studies from real-world systems. Not open for credit to students who have taken ECS 235.
Prerequisites
ECS 150; ECS 152A recommended.
Credit Limitation
Not open for credit to students who have taken ECS 235.
Enrollment Restrictions
Pass One and Pass Two open to Graduate Students in Computer Science only.
Expanded Course Description

Summary of Course Content
1. Introduction: goals of computer security, threat model, principles.

2. Access control: access control lists, capabilities, confinement.

3. Software security: common software vulnerabilities, static analysis, secure coding practices.

4. Mobile code security: Java security architecture, proof-carrying code.

5. Network security: vulnerabilities in the Internet, firewalls, intrusion detection.

6. Cryptography: symmetric key cryptography, public key cryptography, cryptographic protocols, authentication.

7. Malware: propagation, detection, prevention.

8. Anonymity: anonymous routing, servers, and cash.

9. E-voting.

Project:

Each student team is expected to do original research in computer security.



Illustrative Reading
Instructor's notes and research papers

Potential Course Overlap
This is an introductory graduate computer security course, focusing on the application aspect of computer security. This course has little overlap with other courses.

Course Category