Department of Computer and Data Sciences

Glennan Building (7071)
http://engineering.case.edu/cds/
Phone: 216.368.2800; Fax: 216.368.6888
Jing Li, Leonard Case Jr. Professor and Interim Chair 

While the BS degree in Computer Science at Case Western Reserve University was approved in 1987, the Department of Computer and Data Sciences (CDS) was recently established in 2019.  Computer Science is the study of the theory, practice, and application of computer systems.  Data Science is an interdisciplinary field that utilizes computer systems, computational algorithms, and statistical methods to manage, analyze, and visualize data from different domains in order to extract information and knowledge from data.  Computer Science and Data Science are at the heart of modern technology with applications in many disciplines.  They both have a profound impact on our society and drive job creation.  Starting salaries in our fields are consistently ranked at the top of all college majors.  Our graduates work in cutting-edge companies--from giants to start-ups, in a variety of technology sectors, including computer and internet, business and finance, healthcare and medical devices,  energy, and consulting. 

CDS offers a BS degree in Computer Science, a Computer Science major toward the BA degree, a BS degree in Data Science & Analytics, a combined BS/MS program in Computer Science, and MS and PhD degrees in Computing & Information Science.  CDS also offers minors in Computer Science, Computer Gaming, and Artificial Intelligence.  The minor in Applied Data Science is administered by the Department of Materials Science and Engineering https://engineering.case.edu/materials-science-and-engineering/academics/.

Educational Philosophy

The CDS department is dedicated to developing high-quality graduates who will take positions of leadership as their careers advance.  We recognize that the increasing role of technology in virtually every facet of our society, life, and culture makes it vital that our students have access to progressive and cutting-edge higher education programs.  The program values for all of the degree programs in the department are:

  • mastery of fundamentals
  • creativity
  • social awareness
  • leadership skills
  • professionalism

Stressing excellence in these core values helps to ensure that our graduates are valued and contributing members of our global society and that they will carry on the tradition of industrial and academic leadership established by our alumni.

Our goal is to graduate students who have fundamental technical knowledge of their profession and the requisite technical breadth and communications skills to become leaders in creating the new techniques and technologies which will advance their fields.  To achieve this goal, the department offers a wide range of technical specialties consistent with the breadth of computer science and data science, including recent developments in the fields.  Because of the rapid pace of advancement in these fields, our degree programs emphasize a broad and foundational science and technology background that equips students for future developments.  Our programs include a wide range of electives and our students can also develop individualized programs that can combine computer and data sciences with other disciplines.

Research

At Case Western, we thrive to provide outstanding educational experiences for both our undergraduate and graduate students, while performing cutting edge research in:

  1. Algorithms and Theory
  2. Artificial Intelligence and Machine Learning
  3. Bioinformatics and Systems Biology
  4. Data Science and Analytics
  5. Databases & Data Mining
  6. Computer Networks and Systems
  7. Security and Privacy
  8. Software Engineering

Primary Faculty Appointments

Erman Ayday, PhD
(Georgia Institute of Technology)
Assistant Professor
Cryptography, Network Security, Trust and Reputation Management, Big Data Analytics

Harold S. Connamacher, PhD
(University of Toronto)
Associate Professor
Constraint satisfaction problems, graph theory, random structures, and algorithms

Mehmet Koyuturk, PhD
(Purdue University)
Professor
Bioinformatics and computational biology, computational modeling and algorithm development for systems biology, integration, mining and analysis of biological data, algorithms for distributed systems

Michael Lewicki, PhD
(California Institute of Technology)
Professor
Computational perception and scene analysis, visual representation and processing, auditory representation and analysis

Jing Li, PhD
(University of California, Riverside)
Leonard Case Jr. Professor and Interim Chair
Computational Biology and Bioinformatics, Data Mining and Machine Learning, Data Science and Analytics, Algorithms

Vincenzo Liberatore, PhD
(Rutgers University)
Associate Professor
Distributed systems, Internet computing, randomized algorithms

Orhan Ozguner, PhD
(Case Western Reserve University)
Assistant Professor
Algorithms, Data Science, Data Structure, Programming

H. Andy Podgurski, PhD
(University of Massachusetts, Amherst)
Professor
Software engineering methodology and tools, especially use of data mining, machine learning, and program analysis techniques in software testing, fault detection and localization, reliable engineering and software security, electronic medical records, privacy

Michael Rabinovich, PhD
(University of Washington)
Professor
Computer networks, distributed systems, Internet security and performance

Soumya Ray, PhD
(University of Wisconsin, Madison)
Associate Professor
Artificial intelligence, machine learning, reinforcement learning, automated planning, applications to interdisciplinary problems including medicine and bioinformatics

An Wang, PhD
(George Mason University)
Assistant Professor
Systems & Network Security

Yinghui Wu, PhD
(University of Edinburgh (UK))
Assistant Professor
Data Science

Xusheng Xiao, PhD
(North Carolina State University)
Assistant Professor
Software Engineering, Computer Security

Shuai Xu, PhD
(Florida International University)
Assistant Professor
Algorithms & Theory

Yanfang (Fanny) Ye, PhD
(Xiamen University)
Associate Professor
Cybersecurity, Data Mining, Machine Learning, and Health Intelligence


Joint Faculty Appointments

M. Cenk Cavusoglu, PhD
(University of California, Berkeley)
Nord Professor of Engineering
Robotics, systems and control theory, and human-machine interfaces; with emphasis on medical robotics, haptics, virtual environments, surgical simulation, and bio-system modeling and simulation


Adjunct Faculty Appointments

Mark A. Allman, MSEE
Adjunct Instructor

Nicholas Barendt, MSEE, BSEE
Adjunct Sr. Instructor

Michael Branicky, PhD
Adjunct Professor

Mahdi Cheraghchi Bashi Astaneh, PhD
Adjunct Assistant Professor

Sanjaya Gajurel, PhD
Adjunct Assistant Professor

Roberto Galan, PhD
Adjunct Assistant Professor

Eamon Johnson, PhD
Adjunct Instructor

Ronald Loui, PhD
Adjunct Professor

Gideon Samid, PhD
Adjunct Assistant Professor

Matthew Sargent, PhD
Adjunct Assistant Professor

Sadida Siddiqui
Adjunct Instructor

Emre Yilmaz
Adjunct Instructor

Miguel Zubizarreta-Ada, PhD
Adjunct Professor


Secondary Faculty Appointments

Gurkan Bebek, PhD
Assistant Professor
SOM-Center for Proteomics

Marc Buchner, PhD
Associate Professor
CSE-ECSE

Vira Chankong, PhD
Associate Professor
CSE-ECSE

Roger French, PhD
Professor
CSE-EMSE

Michael Fu, PhD
Assistant Professor
CSE-ECSE

Mark Griswold, PhD
Professor
SOM-Radiology

Evren Gurkan-Cavusoglu, PhD
Assistant Professor
CSE-ECSE

Fulai Jin, PhD
Assistant Professor
SOM-Genetics & Genome Sciences

Thomas LaFramboise, PhD
Associate Professor, Genetics
SOM-Genetics

Xiao Li, PhD
Assistant Professor
SOM-RNA Center

Anant Madabhushi, PhD
Professor
CSE-EBME

Aziz Nazha, PhD
Assistant Professor
SOM, CCF-Ctr of Clinical Artificial Intelligence

Christos Papachristou, PhD
Professor
CSE-ECSE

Satya Sahoo, PhD
Associate Professor
SOM-Dept. of Population & Quantitative Health Sciences

Peter Thomas, PhD
Associate Professor
CAS-MATH

Xiong (Bill) Yu, PhD
Professor
CSE-ECIV


Emeritus Faculty

Gultekin Ozsoyoglu, PhD
(University of Alberta, Canada)
Emeritus Professor
Graph databases and data mining problems in metabolic networks, metabolomics, and systems biology, bioinformatics, web data mining

Z. Meral Ozsoyoglu, PhD
(University of Alberta, Canada)
Emeritus Professor
Database systems, database query languages and optimization, data models, index structures, bioinformatics, medical informatics

Undergraduate Programs

The CDS department offers programs leading to degrees in:

  1. Data Science and Analytics (Bachelor of Science)
  2. Computer Science (Bachelor of Science, Bachelor of Arts)

These programs provide students with a strong background in the fundamentals of mathematics and science. Students can use their technical and open electives to pursue concentrations in software engineering, algorithms, artificial intelligence, databases, data mining, bioinformatics, security, computer systems, and computer networks. In addition to an excellent technical education, all students in the department are exposed to societal issues, ethics, professionalism, and have the opportunity to develop leadership and creativity skills.


Bachelor of Science in Data Science and Analytics

The Bachelor of Science degree program in Data Science and Analytics provides our students with a broad foundation in the field and with the instruction, skills, and experience needed to understand and handle large amounts of data to derive actionable information.  The degree program has a unique focus on real-world data and real-world applications.

This major is one of the first undergraduate programs nationwide with a curriculum that includes mathematical modeling, computation, data analytics, visual analytics and project-based applications – all elements of the future emerging field of data science.

An undergraduate minor in Applied Data Science https://bulletin.case.edu/schoolofengineering/materialsscienceengineering/#undergraduatetext  is administered in the Materials Science and Engineering Department.

The major requires completion of the university general education requirements http://bulletin.case.edu/undergraduatestudies/degreeprograms/, the engineering general education requirements <http://bulletin.case.edu/undergraduatestudies/csedegree/> as modified for the Bachelor of Science in Data Science and Analytics degree, and the following courses:

Major Requirements

CSDS 133Introduction to Data Science and Engineering for Majors3
CSDS 233Introduction to Data Structures4
CSDS 234Structured and Unstructured Data3
CSDS 302Discrete Mathematics3
CSDS 310Algorithms3
CSDS 312Introduction to Data Science Systems3
CSDS 313Introduction to Data Analysis3
CSDS 341Introduction to Database Systems3
or CSDS 341D Introduction to Databases: DS Major
CSDS 344Computer Security3
or CSDS 356 Data Privacy
CSDS 395Senior Project in Computer Science4
MATH 380Introduction to Probability3

Two of STAT 243, STAT 244, STAT 312, and STAT 325 3 units each. Core courses provide our students with a strong background in foundations and analytics.

Foundations

Each student must supplement their competence in foundational technical areas by taking at least three additional courses, totaling at least nine credit hours from the following list. Other courses, beyond those that are listed, may be approved by the student’s academic advisor. The following list is organized in topical areas for informational purposes only; foundation courses may come from the same or from different areas.

Systems
CSDS 293Software Craftsmanship4
CSDS 305Files, Indexes and Access Structures for Big Data3
CSDS 315Scalable Parallel Data Analysis3
CSDS 338Intro to Operating Systems and Concurrent Programming4
CSDS 344Computer Security3
CSDS 356Data Privacy3
CSDS 393Software Engineering3
Statistics
STAT 243Statistical Theory with Application I3
STAT 244Statistical Theory with Application II3
Any STAT course number 300 or above
Analytics: Artificial Intelligence
CSDS 390Advanced Game Development Project3
CSDS 391Introduction to Artificial Intelligence3
CSDS 442Causal Learning from Data3
CSDS 491Artificial Intelligence: Probabilistic Graphical Models3
Analytics: Data Mining 
CSDS 339Web Data Mining3
CSDS 391Introduction to Artificial Intelligence3
or CSDS 435 Data Mining
Theory
CSDS 477Advanced Algorithms3
MATH 201Introduction to Linear Algebra for Applications3
or MATH 307 Linear Algebra
MATH 327Convexity and Optimization3
Engineering: Signals
ECSE 246Signals and Systems4
ECSE 313Signal Processing3
Engineering: Optimization
ECSE 346Engineering Optimization3
ECSE 416Convex Optimization for Engineering3
Applications

Data science graduates are expected to be knowledgeable in a wide range of areas of applications of the data science profession. The breadth requirement is satisfied by choosing at least two courses (totaling at least six credit hours) from the following list. Additional courses, beyond those that are listed, may be approved by the student’s academic advisor.

ACCT 207Excel and Accounting Analytics Technology3
BIOL 319Applied Probability and Stochastic Processes for Biology3
BIOL 311ASurvey of Bioinformatics: Technologies in Bioinformatics1
BIOL 311BSurvey of Bioinformatics: Data Integration in Bioinformatics1
BIOL 311CSurvey of Bioinformatics: Translational Bioinformatics1
DSCI 330Cognition and Computation3
DSCI 351Exploratory Data Science3
ECON 326Econometrics4
ECON 327Advanced Econometrics3
CSDS 458Introduction to Bioinformatics3
CSDS 459Bioinformatics for Systems Biology3
MKMR 310Marketing Analytics3
MPHP 301Introduction to Epidemiology3
MPHP 426An Introduction to GIS for Health and Social Sciences3

Technical Electives

Two more courses from the core, foundations, and applications lists for at least six credit hours. The combination of core, foundations, and application courses with technical and open electives makes it possible to achieve a minor in fields as different as Economics and Biology. Interested students should contact their advisors.

Suggested Program of Study: Bachelor of Science in Data Science and Analytics

The following is a suggested program of study. Current students should always consult their advisors and their individual graduation requirement plans as tracked in SIS.

First YearUnits
FallSpring
Principles of Chemistry for Engineers (CHEM 111)24  
Introduction to Programming in Java (CSDS 132)23  
Calculus for Science and Engineering I (MATH 121)24  
PHED (2 half semester courses)10  
SAGES First Year Seminar14  
General Physics I - Mechanics (PHYS 121)2  4
Calculus for Science and Engineering II (MATH 122)2  4
Introduction to Data Science and Engineering for Majors (CSDS 133)  3
Introduction to Data Structures (CSDS 233)  4
PHED (2 half semester courses)1  0
SAGES University Seminar1  3
Year Total: 15 18
 
Second YearUnits
FallSpring
Structured and Unstructured Data (CSDS 234)3  
SAGES University Seminar13  
Discrete Mathematics (CSDS 302)3  
Calculus for Science and Engineering III (MATH 223)23  
General Physics II - Electricity and Magnetism (PHYS 122)24  
Algorithms (CSDS 310)  3
Introduction to Database Systems (CSDS 341)  3
Elementary Differential Equations (MATH 224)2  3
Breadth elective2  3
Probability/Statistics Elective3  3
Year Total: 16 15
 
Third YearUnits
FallSpring
Introduction to Data Science Systems (CSDS 312)3  
Introduction to Data Analysis (CSDS 313)3  
Computer Security (CSDS 344)3  
Breadth elective23  
Probability or Statistics33  
Data Privacy (CSDS 356) (or Foundations)4  3
Professional Communication for Engineers (ENGL 398)  2
Professional Communication for Engineers (ENGR 398)  1
Breadth Elective2  3
Open Elective  3
Probability or Statistics3  3
Year Total: 15 15
 
Fourth YearUnits
FallSpring
Breadth Elective23  
Foundations3  
Foundations43  
Open Elective3  
Technical Elective3  
Senior Project in Computer Science (CSDS 395)  4
Applications5  3
Applications5  3
Open elective  2
Technical elective  3
Year Total: 15 15
 
Total Units in Sequence:  124
Applied Data Science Minor

An undergraduate minor in applied data science is administered in the Materials Science and Engineering Department.  

A complete list of DSCI courses may be found on the courses tab of the Data Sciences section of the General Bulletin.


Bachelor of Science and Bachelor of Arts in Computer Science

Mission

The mission of the Bachelor of Science degree program in Computer Science and the Bachelor of Arts degree program in Computer Science is to graduate students who have fundamental technical knowledge of their profession and the requisite technical breadth and communications skills to become leaders in creating the new techniques and technologies which will advance the field of computer science and its application to other disciplines.

Program Educational Objectives

  1. To educate and train students in the fundamentals of computer science and mathematics
  2. To educate students with an understanding of real-world computing needs
  3. To train students to work effectively, professionally and ethically in computing-related professions

Student Outcomes

As preparation for achieving the above educational objectives, the BS and BA degree programs in Computer Science are designed so that Bachelor of Science students attain:

  • Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  • Design, implement, and evaluate a computing-based solution to meet a  given set of computing requirements in the context of the program’s discipline.
  • Communicate effectively in a variety of professional contexts.
  • Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  • Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  • Apply computer science theory and software development fundamentals to produce computing-based solutions.

Core and breadth courses provide our students with the flexibility to work across many disciplines and prepare them for a variety of professions. Our curriculum is designed to teach fundamental skills and knowledge needed by all CS graduates while providing the greatest flexibility in selecting topics. Students are also required to develop depth in at least one of the following technical areas: software engineering; algorithms and theory; computer systems, networks, and security; databases and data mining; bioinformatics; or artificial intelligence.

Bachelor of Science in Computer Science

The Bachelor of Science degree program in Computer Science is designed to give a student a strong background in the fundamentals of mathematics and computer science. The curriculum is designed according to the latest ACM/IEEE computer science curriculum guidelines. A graduate of this program should be able to use these fundamentals to analyze and evaluate software systems and the underlying abstractions upon which they are based. A graduate should also be able to design and implement software systems which are state-of-the-art solutions to a variety of computing problems; this includes problems which are sufficiently complex to require the evaluation of design alternatives and engineering trade-offs. In addition to these program-specific objectives, all students in the Case School of Engineering are exposed to societal issues, professionalism, and are provided opportunities to develop leadership skills.

The Bachelor of Science degree program in Computer Science is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org/.

Bachelor of Arts in Computer Science

The Bachelor of Arts degree program in Computer Science is a combination of a liberal arts program and a computing major. It is a professional program in the sense that graduates can be employed as computer professionals, but it is less technical than the Bachelor of Science degree program in Computer Science. This degree is particularly suitable for students with a wide range of interests. For example, students can major in another discipline in addition to computer science and routinely complete all of the requirements for the double major in a 4 year period. This is possible because over a third of the courses in the program are open electives. Furthermore, if a student is majoring in computer science and a second technical field such as mathematics or physics many of the technical electives will be accepted for both majors. Another example of the utility of this program is that it routinely allows students to major in computer science and take all of the pre-med courses in a four-year period.

Major in Computer Science (BS and BA)

BS Degree. Each student is required to complete a total of 20 computer science and computer science related courses, totaling at least 63 credits. The 20 courses must include: all 6 core courses; at least 5 computer science breadth courses; and at least 4 courses in one of the listed computer science depth areas, including all starred courses in that area. The remaining courses needed to fulfill the 20 course requirement may come from the computer science breadth courses, courses of any computer science depth area, and up to 6 of the 20 courses may come from the list of approved technical electives with at most two group 2 courses and none from the group 3 list. Other computer science related courses not listed here may be used with prior permission from the student’s academic advisor. Some courses appear in more than one list. The same course may be used to satisfy multiple requirements of the core, computer science breadth and depth requirements, but courses may not be double counted for the purpose of achieving 20 separate computer science courses and 63 credits

BA Degree. Students are required to complete a total of 13 computer science and computer science related courses, totaling at least 42 credits. The 13 courses for a total of 42 credits must include all 6 core courses and at least 3 computer science breadth courses.  The remaining 4 courses may come from the computer science breadth courses, any course listed as a computer science depth course for the BS, plus at most 3 courses from either the group 1 or the group 3 list of approved technical electives (with no course coming from group 2). There is no depth requirement for the BA degree.

Major Requirements

In addition to engineering general education requirements (Computer Science-BS), arts & sciences general education requirements (BA) and university general education requirements, the major requires the following courses:

B.S.
CHEM 111Principles of Chemistry for Engineers4
MATH 121Calculus for Science and Engineering I4
MATH 122Calculus for Science and Engineering II4
MATH 223Calculus for Science and Engineering III3
MATH 201Introduction to Linear Algebra for Applications3
or MATH 307 Linear Algebra
PHYS 121General Physics I - Mechanics4
PHYS 122General Physics II - Electricity and Magnetism4
ENGR 398Professional Communication for Engineers1
ENGL 398Professional Communication for Engineers2
---
B.A.
MATH 125Math and Calculus Applications for Life, Managerial, and Social Sci I4
MATH 126Math and Calculus Applications for Life, Managerial, and Social Sci II4

Computer Science Core Requirement

Both BS and BA students are required to complete the following 6 courses.

CSDS 132Introduction to Programming in Java3
CSDS 233Introduction to Data Structures4
CSDS 281Logic Design and Computer Organization4
CSDS 302Discrete Mathematics3
CSDS 310Algorithms3
CSDS 395Senior Project in Computer Science4

Computer Science  Breadth Requirement

BS students are required to complete at least 5 of the 7 following computer science breadth courses. BA students are required to complete at least 3 of 7.

CSDS 314Computer Architecture3
CSDS 325Computer Networks I3
CSDS 338Intro to Operating Systems and Concurrent Programming4
CSDS 341Introduction to Database Systems3
CSDS 345Programming Language Concepts3
CSDS 391Introduction to Artificial Intelligence3
CSDS 393Software Engineering3

Statistics Requirement

BS students are required to complete a statistics elective.

One Statistics elective may be chosen from:

MATH 380Introduction to Probability3
STAT 312Basic Statistics for Engineering and Science3
STAT 313Statistics for Experimenters3
STAT 332Statistics for Signal Processing3
STAT 333Uncertainty in Engineering and Science3

Computer Science Depth Requirement

Students pursuing the BS degree must demonstrate a depth of competence in one of the technical areas listed below.  There is no depth requirement for the BA degree.  To complete the depth requirement, students must complete at least four courses in one of the depth areas, including all starred courses.  Recommended general background courses are listed following each area where applicable. 

Area 1: Software Engineering
CSDS 293Software Craftsmanship4
CSDS 337Compiler Design4
CSDS 344Computer Security3
CSDS 345Programming Language Concepts *3
CSDS 392App Development for iOS3
CSDS 393Software Engineering *3
CSDS 427Internet Security and Privacy3
CSDS 438High Performance Computing3
CSDS 441Internet Applications3
CSDS 448Smartphone Security3
Area 2: Algorithms and Theory
CSDS 310Algorithms *3
CSDS 343Theoretical Computer Science *3
CSDS 394Introduction to Information Theory3
CSDS 440Machine Learning3
CSDS 455Applied Graph Theory3
CSDS 477Advanced Algorithms3
MATH 406Mathematical Logic and Model Theory3
MATH 408Introduction to Cryptology3
PHIL 306Mathematical Logic and Model Theory3

Recommended preparation: MATH 380 Introduction to Probability

Area 3: Computer Systems, Networks and Security
CSDS 312Introduction to Data Science Systems3
CSDS 325Computer Networks I *3
CSDS 337Compiler Design4
CSDS 338Intro to Operating Systems and Concurrent Programming *4
CSDS 344Computer Security3
or CSDS 444 Computer Security
CSDS 356Data Privacy3
CSDS 427Internet Security and Privacy3
CSDS 428Computer Communications Networks II3
CSDS 438High Performance Computing3
CSDS 441Internet Applications3
CSDS 448Smartphone Security3
MATH 408Introduction to Cryptology3
Area 4: Databases and Data Mining
CSDS 234Structured and Unstructured Data3
CSDS 313Introduction to Data Analysis3
CSDS 339Web Data Mining3
CSDS 341Introduction to Database Systems *3
CSDS 405Data Structures and File Management3
CSDS 433Database Systems3
CSDS 435Data Mining3
CSDS 440Machine Learning3
MATH 382High Dimensional Probability3
MATH 444Mathematics of Data Mining and Pattern Recognition3
Area 5: Bioinformatics
CSDS 310Algorithms *3
CSDS 341Introduction to Database Systems3
or CSDS 341D Introduction to Databases: DS Major
CSDS 435Data Mining3
CSDS 440Machine Learning3
CSDS 458Introduction to Bioinformatics *3
CSDS 459Bioinformatics for Systems Biology3

Recommended breadth and preparation: STAT 325 Data Analysis and Linear Models or PQHS 431 Statistical Methods I,SYBB 311A Survey of Bioinformatics: Technologies in Bioinformatics, SYBB 311B Survey of Bioinformatics: Data Integration in Bioinformatics, SYBB 311C Survey of Bioinformatics: Translational Bioinformatics, BIOL 214 Genes, Evolution and Ecology

Area 6: Artificial Intelligence
CSDS 391Introduction to Artificial Intelligence *3
CSDS 394Introduction to Information Theory3
CSDS 440Machine Learning3
CSDS 442Causal Learning from Data3
CSDS 491Artificial Intelligence: Probabilistic Graphical Models3
CSDS 496Artificial Intelligence: Sequential Decision Making3
CSDS 497Artificial Intelligence: Statistical Natural Language Processing3
CSDS 499Algorithmic Robotics3
ECSE 484Computational Intelligence I: Basic Principles3
MATH 382High Dimensional Probability3

Recommended breadth and preparation: MATH 380 Introduction to Probability, and either ECSE 416 Convex Optimization for Engineering or CSDS 477 Advanced Algorithms.

List of Approved Technical Electives

This list of approved technical electives is divided into groups according to how closely a course is related to the core knowledge areas as defined in the ACM/IEEE computer science curriculum guidelines.  For BS students, up to 6 of the 20 computer science and computer science related courses may come from this list with up to two courses from group 2 and none from group 3. For BA students, up to 3 of the 13 computer science and computer science related courses may come from this list with none from group 2.  Computer science related courses not listed below may be used as a technical elective but require prior permission from the student’s academic advisor.

Group 1
CSDS 275Fundamentals of Robotics4
CSDS 290Introduction to Computer Game Design and Implementation3
CSDS 315Scalable Parallel Data Analysis3
CSDS 366Computer Graphics3
CSDS 373Modern Robot Programming3
CSDS 376Mobile Robotics4
CSDS 377Introduction to Connected Devices3
CSDS 390Advanced Game Development Project3
CSDS 478Computational Neuroscience3
CSDS 490Digital Image Processing3
ECSE 301Digital Logic Laboratory2
ECSE 303Embedded Systems Design and Laboratory3
ECSE 317Computer Design - FPGAs3
ECSE 318VLSI/CAD4
ECSE 419Computer System Architecture3
ECSE 485VLSI Systems3
ECSE 488Embedded Systems Design3
MATH 330Introduction of Scientific Computing3
MATH 431Introduction to Numerical Analysis I3
Group 2 (BS only)
CSDS 489Robotics I3
ECON 380Computational Economics3
ECSE 245Electronic Circuits4
ECSE 246Signals and Systems4
ECSE 304Control Engineering I with Laboratory3
ECSE 305Control Engineering I Laboratory1
ECSE 309Electromagnetic Fields I3
ECSE 313Signal Processing3
ECSE 319Applied Probability and Stochastic Processes for Biology3
ECSE 324Modeling and Simulation of Continuous Dynamical Systems3
ECSE 346Engineering Optimization3
ECSE 350Operations and Systems Design3
ECSE 354Digital Communications3
ECSE 375Applied Control3
ECSE 408Introduction to Linear Systems3
ECSE 413Nonlinear Systems I3
ECSE 414Wireless Communications3
ECSE 416Convex Optimization for Engineering3
ECSE 489Robotics I3
ENGR 210Introduction to Circuits and Instrumentation4
MATH 224Elementary Differential Equations3
MATH 228Differential Equations3
MATH 303Elementary Number Theory3
MATH 308Introduction to Abstract Algebra3
MATH 327Convexity and Optimization3
MATH 413Graph Theory3
MATH 439Bayesian Scientific Computing3
MATH 475Mathematics of Imaging in Industry and Medicine3
MATH 497Stochastic Models: Time Series and Markov Chains3
PHIL 201Introduction to Logic3
PHYS 221Introduction to Modern Physics3
PHYS 250Computational Methods in Physics3
STAT 345Theoretical Statistics I3
STAT 346Theoretical Statistics II3
Group 3 (BA only)
MATH 201Introduction to Linear Algebra for Applications3
or MATH 307 Linear Algebra
MATH 380Introduction to Probability3

Bachelor of Science

Suggested Program of Study: Major in Computer Science

The following is a suggested program of study. Current students should always consult their advisors and their individual graduation requirement plans as tracked in SIS.

First YearUnits
FallSpring
SAGES First Year Seminar*4  
Principles of Chemistry for Engineers (CHEM 111)4  
Calculus for Science and Engineering I (MATH 121)4  
Introduction to Programming in Java (CSDS 132)3  
PHED (2 half semester courses)*0  
Open elective3  
SAGES University Seminar*  3
General Physics I - Mechanics (PHYS 121)  4
Calculus for Science and Engineering II (MATH 122)  4
Introduction to Data Structures (CSDS 233)  4
PHED (2 half semester courses)*  0
Year Total: 18 15
 
Second YearUnits
FallSpring
SAGES University Seminar*3  
General Physics II - Electricity and Magnetism (PHYS 122)4  
Calculus for Science and Engineering III (MATH 223)3  
Discrete Mathematics (CSDS 302)3  
Logic Design and Computer Organization (CSDS 281)4  
Introduction to Linear Algebra for Applications (MATH 201)  3
Statistics electivea  3
Computer science breadth courseb  3
Breadth elective**  3
Technical Electived  3
Year Total: 17 15
 
Third YearUnits
FallSpring
Algorithms (CSDS 310)3  
Computer science breadth courseb3  
Computer science breadth courseb3  
Technical electived3  
Breadth elective**3  
Professional Communication for Engineers (ENGL 398)  2
Professional Communication for Engineers (ENGR 398)  1
Computer science breadth courseb  3
Computer science breadth courseb  3
Computer science depth coursec  3
Breadth elective**  3
Year Total: 15 15
 
Fourth YearUnits
FallSpring
Breadth elective**3  
Computer science depth coursec3  
Technical electived3  
Technical electived3  
Open elective3  
Senior Project in Computer Science (CSDS 395)  4
Computer science depth coursec  3
Technical electived  3
Technical electived  3
Open elective  3
Year Total: 15 16
 
Total Units in Sequence:  126

Hours Required for Graduation: 126

Bachelor of Arts

Suggested Program of Study: Major in Computer Science

The following is a suggested program of study. Current students should always consult their advisors and their individual graduation requirement plans as tracked in SIS.

First YearUnits
FallSpring
Introduction to Programming in Java (CSDS 132)3  
Math and Calculus Applications for Life, Managerial, and Social Sci I (MATH 125)4  
Breadth elective**3  
Open elective3  
PHED (2 half semester courses)*0  
SAGES First Year Seminar*4  
Math and Calculus Applications for Life, Managerial, and Social Sci II (MATH 126)  4
Breadth elective**  3
Open elective  3
Open elective  3
PHED (2 half semester courses)*  0
SAGES University Seminar*  3
Year Total: 17 16
 
Second YearUnits
FallSpring
Logic Design and Computer Organization (CSDS 281)4  
Breadth elective**3  
Open elective3  
Open elective3  
SAGES University Seminar*3  
Introduction to Data Structures (CSDS 233)  4
Discrete Mathematics (CSDS 302)  3
Breadth elective**  3
Open elective  3
Open elective  3
Year Total: 16 16
 
Third YearUnits
FallSpring
Computer science breadth coursea3  
Computer science breadth coursea3  
Open elective3  
SAGES Department Seminar3  
Computer science breadth coursea  3
Open elective  3
Technical electiveb  3
Technical electiveb  3
Year Total: 12 12
 
Fourth YearUnits
FallSpring
Algorithms (CSDS 310)3  
Open elective3  
Open elective3  
Open elective3  
Technical electiveb3  
Senior Project in Computer Science (CSDS 395)  4
Open elective  3
Open elective  3
Open elective  3
Technical electiveb  3
Year Total: 15 16
 
Total Units in Sequence:  120

Hours Required for Graduation: 120

Cooperative Education Program in Computer Science

Opportunities are available for students to alternate studies with work in industry or government as a co-op student, which involves paid full-time employment over seven months (one semester and one summer). Students may work in one or two co-ops, beginning in the third year of study. Co-ops provide students the opportunity to gain valuable hands-on experience in their field by completing a significant engineering project while receiving professional mentoring. During a co-op placement, students do not pay tuition but maintain their full-time student status while earning a salary. Learn more at http://engineering.case.edu/coop/. Alternatively or additionally, students may obtain employment as summer interns.

BS/MS Program in Computer Science

Students with a grade point average of 3.2 or higher are encouraged to apply to the BS/MS Program which will allow them to get both degrees in five years. The BS can be in Computer Science or a related discipline, such as mathematics or electrical engineering. Integrating graduate study in computer science with the undergraduate program allows a student to satisfy all requirements for both degrees in five years.  Review the Office of Undergraduate Studies BS/MS program requirements here.

Minor in Computer Science (BS or BSE)

For students pursuing a BS or BSE degree, the following four courses are required for a minor in computer science:

CSDS 132Introduction to Programming in Java3
CSDS 233Introduction to Data Structures4
CSDS 302Discrete Mathematics3
CSDS 310Algorithms3

A student must take an additional 3 credit hours of CS Courses (see Major Requirements) with the exclusion of ENGR 131 Elementary Computer Programming.

Minor in Computer Science (BA)

For students pursuing BA degrees, the following courses are required for a minor in computer science:

CSDS 132Introduction to Programming in Java3
CSDS 233Introduction to Data Structures4
MATH 125Math and Calculus Applications for Life, Managerial, and Social Sci I4

Two additional CS Courses (see Major Requirements) are required for this minor.

Minor in Artificial Intelligence

The minor consists of five courses. Every student who takes the minor in artificial intelligence must take the two courses, ENGR 131 Elementary Computer Programming and CSDS 391 Introduction to Artificial Intelligence.  Students who take the Artificial Intelligence minor must also take an additional three courses from one of two minor tracks.

Technology Track (requires 3 of the following courses):

BIOL 373Introduction to Neurobiology3
BIOL 374Neurobiology of Behavior3
CSDS 477Advanced Algorithms3
CSDS 478Computational Neuroscience3
ECSE 350Operations and Systems Design3
ECSE 352Engineering Economics and Decision Analysis3
ECSE 360Manufacturing and Automated Systems3
ECSE 375Applied Control3
ECSE 411Applied Engineering Statistics3
ECSE 475Applied Control3
ECSE 484Computational Intelligence I: Basic Principles3
ECSE 489Robotics I3
ECSE 531Computer Vision3
ECSE 589Robotics II3
PHIL 201Introduction to Logic3
PHIL 306Mathematical Logic and Model Theory3

Cognitive Science Track (requires 3 of the following courses):

BIOL 373Introduction to Neurobiology3
BIOL 374Neurobiology of Behavior3
ENGL 301Linguistic Analysis3
PHIL 201Introduction to Logic3
PHIL 306Mathematical Logic and Model Theory3
PSCL 101General Psychology I3
PSCL 352Physiological Psychology3
PSCL 353Psychology of Learning3
PSCL 355Sensation and Perception3
PSCL 357Cognitive Psychology3
PSCL 370Human Intelligence3
PSCL 402Cognition and Information Processing3

Minor in Computer Gaming (CGM)

The minor is 16 hours as follows:

CSDS 233Introduction to Data Structures4
CSDS 290Introduction to Computer Game Design and Implementation3
CSDS 366Computer Graphics3
CSDS 390Advanced Game Development Project3
CSDS 391Introduction to Artificial Intelligence3

It is recommended that one additional open elective be a “content creation” course taken from the following areas: Art, English, or Music.  Students should note that CSDS 132 Introduction to Programming in Java is a prerequisite for CSDS 233 Introduction to Data Structures.

MS Degree Program (Computing and Information Science)

MS in Computing and Information Science, also commonly known as MS in CS, has three tracks: a Course-Focused track, a Project-Focused track, and a Thesis-Focused track. Although all of the three options require 30 semester hours of credit, they are structured differently to achieve different objectives. The Course-Focused track prepares students for advanced industry employment and should be treated as a terminal MS degree in CS. The Project-Focused track if for students who seek opportunities for completing an applied project, for example within the context of an established collaboration with industry. The Thesis-Focused track is mainly for students who have interests in research. Therefore, the three tracks have different requirements in admission, advising, and course work.   

Admission

Graduate students shall be admitted to the MS degree program upon recommendation of the faculty of the CS program.  Requirements for admission include a strong record of scholarship in a completed bachelor's degree program in computer science and related areas, and fluency in written and spoken English.  The University requires all foreign applicants to show English proficiency by achieving a TOEFL score of at least 90 on the internet-based exam for the thesis-focused or the project-focused track.  For the course-focused track, a minimum TOEFL score of 80 is required.  For students who are expected to have any professional student to student interaction, e.g., as a teaching assistant, a lab instructor, or a tutor, a minimum TOEFL score of 90 is required.  It is required that all students submit original copies of GRE scores, with the exception of CWRU students applying to the BS/MS program.

The MS program requires students to have substantial knowledge of undergraduate computer science material. Applications from students with a bachelor's degree in fields other than computer science may be granted admission on a provisional basis. In particular, students should have knowledge in data structures, algorithms, and operating systems equivalent to that in the courses:

CSDS 233 Introduction to Data Structures

CSDS 310 Algorithms

CSDS 338 Intro to Operating Systems and Concurrent Programming

Students deficient in one or more of these areas (admission with provision) may be required to satisfy this requirement by taking the corresponding courses listed above. These courses cannot be counted towards their MS requirement. However, a student taking and passing a more advanced course in an area automatically demonstrates knowledge of the material in the area; e.g. taking CSDS 410 Analysis of Algorithms demonstrates knowledge of the material in CSDS 310 Algorithms. Such graduate level courses will be used to satisfy their MS requirement.

Registration

Course registration can be performed through the SIS system. Each semester before registration, students should update any personal information that may have changed by logging onto the SIS and editing the appropriate information. All registration holds must be lifted in order to successfully complete the registration process.

Advising

Each MS student will be assigned an academic advisor, who will assist the student in formulating an academic program. A student in the thesis-focused or project-focused track is expected to pick a research advisor in the program by the end of their first semester. The research advisor will supervise the student's thesis or project and also serves as the academic advisor.  A student whose research advisor is a faculty member not in the CDS department must maintain an academic advisor in the CS program. Each student, in consultation with their advisor(s), must submit a Planed Program of Study preferably before completing 9 credit hours of coursework.  This should specify all courses and thesis/project work that will be counted toward the 30 credit hour requirement.

Requirements of different tracks 

The Course-Focused MS degree program requirements consist of the completion of 30 hours of approved coursework, satisfactory completion of a comprehensive exam, i.e., passing the course ENGR 600 with a grade of “P”. ENGR 600 consists of Comprehensive Exam questions that are administered in CSDS 410 Analysis of AlgorithmsCSDS 425 Computer Networks ICSDS 440 Machine LearningCSDS 444 Computer Security, and CSDS 493 Software Engineering . Students must take and pass questions in at least two of these classes. Students who fail one exam in a course may retake that exam one more time but are not required to retake the associated course.

The Project-Focused track requires 24 semester hours of coursework credit and 6 semester hours of project  (CSDS 695 Project M.S.).

The Thesis-Focused track requires 18 semester hours of coursework credit and 12 hours of thesis  (CSDS 651 Thesis M.S.). A BS/MS student is required to choose the thesis-focused track initially. 

Both the Thesis-Focused and the Project-Focused track require a formal written report, as well as a final oral examination by a committee of at least three faculty members, two of whom must be primarily affiliated with the CS program. The academic advisor is normally one of the committee members. For Project-Focused track students, the oral examination fulfills the Comprehensive Examination requirement of the School of Graduate Studies.  

If a student wishes to switch from one track to another, the following requirements apply:

  • Deadline. In each semester, students must request to switch track one week before the date at which Drop/Add ends, as stated in the academic calendar.
  • Course-only or Project to Thesis. A course-only student may request to switch to the thesis track only if she (1) has already taken at least 9 credit hours of letter graded CSDS courses and  (2) has a GPA of 3.5 or higher and (3) has a TOEFL score of 90 or higher and (4) has the recommendation of a CDS advisor or (co)advisor.
  • Course-only to Project. A course-only student may request to switch to the thesis track only if she (1) has a TOEFL score of 90 or higher and (2) has the recommendation of a CDS advisor or (co)advisor.
  • Thesis to Project, or Thesis or Project to Course-only. Such a transfer needs approval from the student's advisor and the department chair.  
  • Petition. If a student fails to satisfy the transfer requirements, a petition may be submitted by a CDS advisor or (co)advisor to the department chair. In no case, petitions may be submitted by non-CDS faculty members or by students.

Students should consult with their academic advisor and/or department to determine the detailed requirements within this framework.

Course Requirements

For all three tracks, at least 18 hours of coursework must be at the 400 level or above. All students are required to have specialized knowledge in at least one of the following depth areas, by taking at least three graduate-level classes from that area. The list of acceptable classes is shown below.  For research or project-focused tracks, the chosen area should correspond to the student’s thesis research area or project in general. CSDS 600 Special Topics  classes relevant to the student’s research area or project will also qualify in this category with approval from the student’s advisor. The remaining classes can be (i) any other class from the classes listed below, (ii) any letter graded CSDS graduate class, (iii) up to two graduate-level classes from other relevant programs. For course-focused and project-focused tracks, students can take up to two 300 level CSDS courses. All the  classes need to be specified in the student’s Planned Program of Study (PPOS) and approved by the student academic advisor. Students must achieve a grade point average of 3.0 or higher; it is computed for all of the courses, excluding project and thesis credits, on the student's academic program.

List of depth areas and corresponding courses

  1. Algorithms & Theory:
    1. CSDS 410 Analysis of Algorithms
    2. CSDS 440 Machine Learning
    3. CSDS 455 Applied Graph Theory
    4. CSDS 456 Data Privacy
    5. CSDS 477 Advanced Algorithms
    6. MATH 408 Introduction to Cryptology
  2. Artificial Intelligence:
    1. CSDS 440 Machine Learning
    2. CSDS 442 Causal Learning from Data
    3. CSDS 455 Applied Graph Theory
    4. ECSE 484 Computational Intelligence I: Basic Principles
    5. CSDS 491 Artificial Intelligence: Probabilistic Graphical Models
    6. CSDS 496 Artificial Intelligence: Sequential Decision Making
    7. CSDS 497 Artificial Intelligence: Statistical Natural Language Processing
    8. CSDS 499 Algorithmic Robotics
    9. CSDS 531 Computer Vision
  3. Bioinformatics:
    1. CSDS 410 Analysis of Algorithms
    2. CSDS 435 Data Mining
    3. CSDS 440 Machine Learning
    4. CSDS 456 Data Privacy
    5. EECS 458 Introduction to Bioinformatics
    6. EECS 459 Bioinformatics for Systems Biology
    7. SYBB 412 Survey of Bioinformatics: Programming for Bioinformatics
  4. Computer Networks and Systems:
    1. CSDS 427 Internet Security and Privacy
    2. ECSE 414 Wireless Communications
    3. CSDS 425 Computer Networks I
    4. CSDS 428 Computer Communications Networks II
    5. CSDS 438 High Performance Computing
    6. CSDS 441 Internet Applications
    7. CSDS 444 Computer Security
  5. Databases and Data Mining:
    1. CSDS 405 Data Structures and File Management
    2. CSDS 433 Database Systems
    3. CSDS 435 Data Mining
    4. CSDS 439 Web Data Mining
    5. CSDS 440 Machine Learning
    6. STAT 426 Multivariate Analysis and Data Mining
    7. PQHS 471 Machine Learning & Data Mining
  6. Security and Privacy:
    1. CSDS 427 Internet Security and Privacy
    2. CSDS 444 Computer Security
    3. CSDS 448 Smartphone Security
    4. CSDS 456 Data Privacy
    5. CSDS 493 Software Engineering
    6. MATH 408 Introduction to Cryptology
  7. Software Engineering:
    1. CSDS 425 Computer Networks I
    2. CSDS 433 Database Systems
    3. CSDS 438 High Performance Computing
    4. CSDS 441 Internet Applications
    5. CSDS 442 Causal Learning from Data
    6. CSDS 444 Computer Security
    7. CSDS 448 Smartphone Security
    8. CSDS 493 Software Engineering

PhD Degree Program (Computing and Information Science)

Admission

Requirements for admission include a strong record of scholarship in a completed bachelor's degree program in computer science and related areas, and fluency in written and spoken English. The University requires all foreign applicants to show English proficiency by achieving a TOEFL score of at least 577 on the paper-based exam or 90 on the internet-based exam. It is required that all students submit original copies of GRE scores. When applying to this program, please select the CIS (Computing and Information Sciences) option in your application.

Registration

Course registration (including submission of the Academic Program) can be performed through SIS. Each semester before registration, students should update any personal information that may have changed by logging onto the SIS and editing the appropriate information. All registration holds must be lifted in order to successfully complete the registration process.

PhD Requirements

Each student must satisfy requirements in the following categories:

  • Course Work
  • Mathematics and Science Requirement
  • Research Proposal
  • Qualifying Examination
  • Dissertation

All programs of study must contain at least 36 hours of courses past the undergraduate degree. All courses must be at the 400-level or higher. Six hours must be in a basic science or mathematics. A minimum of 12 hours must be in courses outside the student's thesis area. A student must have attained a minimum 3.25 grade point average (GPA) at the time of graduation. The minimum GPA is calculated based on all courses in the student's Program of Study that carry quality points.

These regulations are in addition to the Academics Regulations of the School of Graduate Studies and the Specific Requirements for the PhD Degree of the Graduate Program in the Case School of Engineering as found in the General Bulletin of Case Western Reserve University.

Academic Advisor and Research Advisor

Upon arrival, each graduate student is assigned an academic advisor from the Computer Science (CS) program faculty, typically the CS graduate representative. By the end of the second semester of study, a PhD student should transfer to a research advisor who may or may not be the same as the academic advisor. Once a research advisor is selected, the research advisor will also serve as the academic advisor, with whom a student consults to ensure that the balance of the PhD course work constitutes a coherent program of study.

If the research advisor is not from the Computer Science program, the student must have an academic advisor from the CS program. The academic advisor may serve as a research co-advisor if so desired by the student and the research advisor.

Academic Program

Each PhD student must submit an Academic Program detailing his or her course work, Qualifying Examination and dissertation schedules. The Academic Program lists all courses taken beyond the undergraduate degree and shows how these courses satisfy the following course requirements for the PhD:

1. The minimum course requirement beyond the BS level is 36 credit hours of courses taken for credit, at least 18 hours of which must be taken at CWRU. The following courses taken for credit will be acceptable:

  • All 400, 500, 600 level courses.
  • Graduate level courses taken at other institutions approved by the student’s advisor.

The above courses must include the following:

  • 1.1 - A minimum of 12 credit hours in the student's dissertation research area.
  • 1.2 - A minimum of 6 credit hours in mathematics or basic science.
  • 1.3 - A minimum of 12 credit hours of breadth courses that are not in the student's dissertation research area.

      Note: The courses for items 1.1, 1.2, and 1.3 must be disjoint.

  • 1.4 - A minimum of 18 credit hours of courses approved by the Computer Science program which can be courses used in item 1.1 and item 1.3. These approved Computer Science courses are listed below.

2. A minimum of 18 credit hours of CSDS 701 Dissertation Ph.D..

3. The cumulative grade-point average of all CWRU courses on the program of study must be at least 3.25.

4. All PhD students are required to register for and pass CSDS 400T Graduate Teaching I, CSDS 500T Graduate Teaching II and CSDS 600T Graduate Teaching III which are 0 credit hour courses that provide students with teaching experience.

5. All PhD students are required to register for and pass three semesters of "CSDS 500 CSDS Colloquium" (a 0 credit hour course) before advancement to candidacy and complete a public presentation of their work.

The Academic Program must be approved by the student's academic advisor and the chair of the CDS Department, and it must be approved before the student advances to candidacy.

Qualifying Examination

The Computer Science PhD qualifying examination is in the form of an oral exam and a written report, assessing the student’s ability to survey a specific research topic, discuss the state-of-the-art in depth, provide a critical description of the literature, and propose creative ideas on improving the state-of-the-art. The written and oral parts of the exam are administered by a committee consisting of three faculty members. The exam is supplemented by the evaluation of the student’s course performance and the final decision is made in a meeting of faculty affiliated with the CS program.

Students who hold a MS degree are required to take the qualifying exam at the start of their 3rd semester, and pass the qualifying exam before the start of their 4th semester in the PhD program. Students who do not hold a MS degree are required to take the qualifying exam at the start of their 5th semester, and pass the qualifying exam before the start of their 6th semester in the PhD program.

Committee: The exam will be administered by a committee composed of 3 faculty members, at least 2 of them being faculty members whose primary affiliation is Computer Science.  The student will provide 0 to 3 names as suggested committee members and the CS Graduate Committee will appoint the committee, taking into account the student's suggestion and maintenance of the load balance of the faculty. If the student has research advisors at the time of the exam, then one advisor must be a member of the committee. Multiple advisors cannot serve on the committee, and no advisors can serve as the chair of the committee. The CS Graduate Committee will make every effort to include a faculty member outside the research area in the committee.  The committee must be appointed at least 2 months prior to the exam.

Format: The student will select a research area from the following list:

  1. Algorithms and Theory
  2. Artificial Intelligence
  3. Bioinformatics
  4. Computer Networks and Systems
  5. Databases and Data Mining
  6. Security and Privacy
  7. Software Engineering

The exam committee will ask the student to write a report that adequately demonstrates the student's ability to perform research in their chosen area of research. Specific examples of this might be a survey of a broad area and/or approaches to a specific problem in the area. This will be followed by an oral examination.

Written Report: The student will submit a written report on the specific research problem. The report has to adequately describe the problem and justify its relevance, identify the challenges associated with the problem, provide a broad classification of existing approaches, point out their key differences and trade-offs, identify limitations, and propose solutions for these limitations. The report must be at most 10 pages in length (11 pt font, single-spaced, single column, 1" margins) and use illustrative figures, tables, and other visual material to communicate key ideas. In addition, the report must include a comprehensive list of references. The written report must be submitted to the exam committee three weeks before the date of the oral exam.

Oral  Exam:  In the oral exam, the student will answer questions by the committee members on a specific research problem chosen by the committee in the selected research area, assessing the knowledge, technical depth, and broader vision of the student on the problem. The committee may also ask questions on the fundamentals of computer science as they relate to the specific research problem. The student may prepare slides in advance that will help answer questions or use the chalk board (or both), but the exam will not be in the format of a presentation. The exam will be one hour in duration. All students who are taking the exam for the first time have to take their oral exam in the week prior to the beginning or in the first two weeks of the Fall semester.

Scoring: Each of the three committee members will prepare a report rating the student's exam performance according to the following criteria:

  • Fundamentals: Does the student have broad knowledge of fundamental concepts in computer science that will enable the student to understand and tackle the challenges in the specific research area?
  • Knowledge of Chosen Area: Does the student have sufficient technical depth and command of the key challenges and the state-of-the-art in the chosen area of research?
  • Vision: Does the student demonstrate a solid understanding of the relevance of the problem in the context of scientific progress and societal needs? Does the student show creativity in innovating their chosen area of research?
  • Communication. Can the student explain the concepts in an accessible and comprehensible manner and handle questions effectively?
  • Overall Score for the Written Report and the Oral Exam.

Possible ratings are 2 (Pass), 1(Retake), or 0 (Fail).

Course Work: The student's performance in all courses taken before the exam will also be considered by the CS program faculty in making a decision.  At the time of the exam, the student must have completed at least two 400-level Computer Science courses with a "B" or above. One of these courses must be CSDS 410 Analysis of Algorithms or CSDS 477 Advanced Algorithms. The second course must be relevant to their chosen area of research. The relevance of the additional course to the research area is subject to approval by the CS Graduate Studies Committee. The following courses are pre-approved for each area:

  1. Algorithms and Theory:
    1. CSDS 410 Analysis of Algorithms
    2. CSDS 477 Advanced Algorithms
  2. Artificial Intelligence:
    1. CSDS 440 Machine Learning
    2. CSDS 491 Artificial Intelligence: Probabilistic Graphical Models
  3. Bioinformatics:
    1. CSDS 458 Introduction to Bioinformatics,
    2. CSDS 459 Bioinformatics for Systems Biology
  4. Computer Networks and Systems:
    1. CSDS 425 Computer Networks I,
    2. CSDS 428 Computer Communications Networks II,
    3. CSDS 427 Internet Security and Privacy
  5.  Databases and Data Mining:
    1. CSDS 433 Database Systems,
    2. CSDS 435 Data Mining
  6.  Security and Privacy:
    1. CSDS 427 Internet Security and Privacy
    2. CSDS 444 Computer Security
    3. CSDS 448 Smartphone Security
    4. CSDS 456 Data Privacy
  7. Software Engineering:
    1. CSDS 493 Software Engineering

Outcome: The final decision will be made by the CS program faculty based on the committee’s reports and the student’s coursework. The outcome of the exam will be one of Pass (the student advances to candidacy), Retake (the student has to retake the exam once more before the end of the following semester. The Retake decision can be partial, i.e. the student may be asked to retake the oral exam only, rewrite the report only, or take/retake a course), Fail (the student will be separated from the PhD program). The decision will be documented by the CS graduate chair and the student will be sent a notification letter.

Advancement to Candidacy

A student formally advances to candidacy after passing the Qualifying Examination and finding a faculty member who agrees to be the student's research advisor. The student should advance to candidacy within one semester of passing the Qualifying Examination.

Students should submit documentation, approved by the academic and research advisor(s), to the Chairman of the Graduate Studies Committee of Computer Science to be admitted to candidacy.

Students who have failed to complete the conditions above within the time limit will be separated from the PhD program. Separation may also occur in the event of failure of the student to maintain a satisfactory GPA. A student who has been separated may not undertake further study for credit toward the PhD degree. With the approval of the Department and the Dean of Graduate Studies, such a student may complete a master's degree, may register as a non-degree student or seek admission to the graduate program of another department.

Dissertation Advisory Committee

Each PhD student must form a Dissertation Advisory Committee which consists of at least 4 members of University faculty. The student's academic advisor serves as the chair of this committee. Both the chair of the committee and at least one other member must be a regular faculty member whose primary affiliation is with the Computer Science program. The committee must also include one member whose primary appointment is not in the Computer Science program.

Dissertation Proposal

The PhD student must write a formal thesis proposal and defend it in an oral presentation to his or her Dissertation Advisory Committee. Normally this is done within a year of advancing to candidacy. A student who fails to defend his or her thesis proposal can attempt to defend it a second time after modifying the thesis proposal, but a second failure will cause the student to be separated from the program.

Dissertation

The student's dissertation must be original research in CS which represents a significant contribution to existing knowledge in the student's research area, a portion of which must be suitable for publication in reputable research journals or selective peer-reviewed conferences. In addition to the written dissertation, the doctoral candidate must pass an oral examination in defense of the dissertation. The Dissertation Advisory Committee is responsible for certifying that the quality and suitability of the material presented in the dissertation meet acceptable scholarly standards. If the student has not publicly presented their work at a conference or similar external venue, they must also present the dissertation research in a departmental seminar.

Course List for Program of Study Requirement

CSDS 405 Data Structures and File Management

CSDS 410 Analysis of Algorithms

CSDS 425 Computer Networks I

CSDS 427 Internet Security and Privacy

CSDS 428 Computer Communications Networks II

CSDS 433 Database Systems

CSDS 435 Data Mining

CSDS 438 High Performance Computing

CSDS 439 Web Data Mining

CSDS 440 Machine Learning

CSDS 441 Internet Applications

CSDS 442 Causal Learning from Data

CSDS 444 Computer Security

CSDS 448 Smartphone Security

CSDS 455 Applied Graph Theory

CSDS 456 Data Privacy

CSDS 458 Introduction to Bioinformatics

CSDS 459 Bioinformatics for Systems Biology

CSDS 466 Computer Graphics

CSDS 477 Advanced Algorithms

ECSE 484 Computational Intelligence I: Basic Principles

CSDS 491 Artificial Intelligence: Probabilistic Graphical Models

CSDS 493 Software Engineering

CSDS 496 Artificial Intelligence: Sequential Decision Making

CSDS 497 Artificial Intelligence: Statistical Natural Language Processing

ECSE 499 Algorithmic Robotics

EECS Colloquium and Presentation Requirement

PhD Students

The requirement has two parts: (1) passing 3 semesters of CSDS 500 CSDS Colloquium, and (2) a public presentation.

(1) All PhD students are required to register for and pass CSDS 500 CSDS Colloquium for a total of three semesters of the PhD Program, and this is expected before Advancement to Candidacy. (This is a 0 credit hour required course.)  Students (such as students working in industry) may propose an alternative arrangement for fulfilling this requirement, by submitting a written petition to the Graduate Studies Committee.

(2) All PhD students must give a public presentation of their research, in addition to their PhD dissertation defense.  This presentation must be given either at a research conference or in the CDS seminar series. 

Facilities

Computer Facilities

The department computer facilities incorporate both Unix/Linux and Microsoft Windows-based operating systems on high-end computing workstations for education and research. A number of file, printing, database, and authentication servers support these workstations, as well as the administrative functions of the department. Labs are primarily located in the Olin and Glennan buildings, but include Nord Hall, and are networked via the Case network.

The Case network is a state-of-the-art, high-speed fiber optic campus-wide computer network that interconnects laboratories, faculty and student offices, classrooms, and student residence halls. It is one of the largest fiber-to-desktop networks anywhere in the world. Every desktop has a 1 Gbps (gigabit per second) connection to a fault-tolerant 10 Gbps backbone. To complement the wired network, over 1,200 wireless access points (WAPs) are also deployed allowing anyone with a laptop or wireless enabled PDA to access resources from practically anywhere on campus.

Off-campus users, through the use of virtual private network (VPN) servers, can use their broadband connections to access many on-campus resources, as well as software, as if they were physically connected to the Case network. The department and the university participate in the Internet2 and National Lambda Rail projects, which provides high-speed, inter-university network infrastructure allowing for enhanced collaboration between institutions. The Internet2 infrastructure allows students, faculty and staff alike the ability to enjoy extremely high-performance connections to other Internet2 member institutions.

Aside from services provided through a commodity Internet connection, Case network users can take advantage of numerous online databases such as EUCLIDplus, the University Libraries’ circulation and public access catalog, as well as Lexus-Nexus™ and various CD-ROM based dictionaries, thesauri, encyclopedias, and research databases. Many regional and national institutional library catalogs are accessible over the network, as well.

Additional Department Facilities

Jennings Computer Center and Undergraduate Computer Lab

Supported by an endowment from the Jennings Foundation, this lab provides our students with the educational resources necessary for their classwork and exploration of the art of computing. This lab has both PCs and  Linux/Unix workstations and includes two high-speed laser printers. This laboratory on the 8th floor of the Olin building supports the freshman computing classes: ENGR 131 Elementary Computer Programming and CSDS 132 Introduction to Programming in Java, as well as other classes that have a lab component. 

Nord Computer Laboratory

This is a general-purpose computer facility that is open 24 hours a day, to all students. The lab contains 50 PCs running Windows and four Apple Macintosh computers. Facilities for color printing, faxing, copying and scanning are provided. Special software includes PRO/Engineer, ChemCAD and Visual Studio. Visit the website for more information.

Virtual Worlds (Gaming and Simulation) Laboratory

The Virtual Worlds Gaming and Simulation Laboratory provides software and hardware to support education and research in computer gaming and simulation activities within the Computer and Data Sciences Department and the University at large. The lab has been leveraged to provide students with extensive game play opportunities and excellent, strongly experiential simulation and game development educational opportunities – primarily targeted to the CDS undergraduate population.

The lab also stimulates large amounts of cross-disciplinary collaboration in both education and research.  Simulation and visualization techniques are of great value in all science and engineering fields, and the lab is capable of supporting advanced applications of these techniques in real-time applications. In addition, interactive technologies and video games require substantial artistic resources, that has resulted in excellent opportunities for educational and research collaboration with the Cleveland Institute of Art (CIA), the School of Nursing, the Medical School, and the Psychology Department. Of particular note has been the Advanced Game Project course (CSDS 390 Advanced Game Development Project) taught jointly by CWRU and CIA for juniors and seniors. This course has been very popular and has provided truly excellent student game design and production experiences while receiving industrial and popular recognition and acclaim. In addition, an entry-level computer game programming course (CSDS 290 Introduction to Computer Game Design and Implementation) is available for students who have taken both a Java-based programming course and a data structures course to provide an introduction to many of the technical aspects of computer game development. Many other courses in the department also use the lab as an important part of their curriculum including courses on computer graphics, artificial intelligence, simulation, digital signal processing, and control systems. The lab also supports research in the department requiring significant computational resources, e.g. GPU acceleration, VLSI simulation, etc.

A recent large donation for the lab has allowed for the update and renovation of the entire lab including the physical infrastructure (carpeting, furniture, etc.), the gaming PCs, and the gaming consoles. In addition, a new VR and AR room has been added to represent this new area connected strongly to computer gaming.  The lab is now structured into a PC gaming area and an adjacent gaming console area, a VR/AR room, a portable gaming development room, and a team collaboration room.

The renovated lab includes the following primary equipment:

  • 24 New Alienware PCs with Dell 27” 4K monitors
  • 4 Sony Bravia Television monitors 75" 3DTV
  • 2 Microsoft HoloLens AR Units
  • 4 Oculus Rift VR units with Haptic Touch Input devices
  • A 3D projector (and large wall screen) with 3D capability for common presentations
  • 4 Xbox One Units with Xbox One controllers
  • 4 PS4 Sony PlayStation units with controllers

Sally & Larry Sears Undergraduate Design Laboratory

This laboratory supports CDS/ECSE courses in circuits and includes a state-of-the-art lecture hall, a modernistic glass-walled lab, an electronics "store", and a student lounge and meeting area. Specialized lab space is available for senior projects and sponsored undergraduate programs. The lab is open to all undergraduates, and components are provided free of charge, so students can “play and tinker” with electronics and foster innovation and creativity. The laboratory provides access to PCs, oscilloscopes, signal generators, logic analyzers, and specialized equipment such as RF analyzers and generators. In addition, the lab includes full-time staff dedicated to the education, guidance and mentoring of undergraduates in the “art and practice” of hands-on engineering.


This is the central educational resource for students taking analog, digital, and mixed-signal courses in electronics, and has been supported by various corporations in addition to alumnus Larry Sears, a successful engineer and entrepreneur. Basic workstations consist of Windows-based computers equipped with LabView software, as well as Agilent 546xx oscilloscopes, 33120A Waveform Generators, 34401A Digital Multimeters, and E3631A power supplies.  Advanced workstations are similarly configured, but with a wider variety of high-performance test equipment.

Courses

CSDS 132. Introduction to Programming in Java. 3 Units.

An introduction to modern programming language features, computer programming and algorithmic problem solving with an emphasis on the Java language. Computers and code compilation; conditional statements, subprograms, loops, methods; object-oriented design, inheritance and polymorphism, abstract classes and interfaces; types, type systems, generic types, abstract data types, strings, arrays, linked lists; software development, modular code design, unit testing; strings, text and file I/O; GUI components, GUI event handling; threads; comparison of Java to C, C++, and C#. Offered as CSDS 132 and ECSE 132. Counts for CAS Quantitative Reasoning Requirement.

CSDS 133. Introduction to Data Science and Engineering for Majors. 3 Units.

This course is an introduction to data science and analytics. In the first half of the course, students will develop a basic understanding of how to manipulate, analyze and visualize large data in a distributed computing environment, with an appreciation of open source development, security and privacy issues. Case studies and team project assignments in the second half of the course will be used to implement the ideas. Topics covered will include: Overview of large scale parallel and distributed (cloud) computing; file systems and file i/o; open source coding and distributed versioning, data query and retrieval; basic data analysis; visualization; data security, privacy and provenance. Prereq: ENGR 131 or EECS 132.

CSDS 233. Introduction to Data Structures. 4 Units.

Different representations of data: lists, stacks and queues, trees, graphs, and files. Manipulation of data: searching and sorting, hashing, recursion and higher order functions. Abstract data types, templating, and the separation of interface and implementation. Introduction to asymptotic analysis. The Java language is used to illustrate the concepts and as an implementation vehicle throughout the course. Offered as CSDS 233 and ECSE 233. Prereq: CSDS 132 or ECSE 132 or EECS 132.

CSDS 234. Structured and Unstructured Data. 3 Units.

This course is an introduction to types of data and their representation, storage, processing and analysis. The course has three parts. In the first part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze structured data. Structured data include catalogs, records, tables, logs, etc., with a fixed dimension and well-defined meaning for each data point. Suitable representation and storage mechanisms include lists and arrays. Relevant techniques include keys, hashes, stacks, queues and trees. In the second part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze semi-structured data. Semi-structured data include texts, web pages and networks, without a dimension and structure, but with well-defined meaning for each data point. Suitable representation and storage mechanisms include trees, graphs and RDF triples. Relevant techniques include XML, YAML, JSON, parsing, annotation, language processing. In the third part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze unstructured data. Unstructured data include images, video, and time series data, without neither a fixed dimension and structure, nor well-defined meaning for individual data points. Suitable representation and storage mechanisms include large matrices, EDF, DICOM. Relevant techniques include feature extraction, segmentation, clustering, rendering, indexing, and visualization. Prereq: DSCI 133.

CSDS 275. Fundamentals of Robotics. 4 Units.

The Fundamentals of Robotics course will expose students to fundamental principles of robotics. Students will explore high level conceptual foundations of robotics beginning with Braitenberg vehicles and apply this knowledge to simulated and physical robot hardware in laboratory experiences and in a final project. Laboratory experiences will guide students through applying theory to practice increasingly complex tasks in a project oriented, group work environment. The course culminates in a robotics challenge project at the end of the semester. Topics covered are: sensors, actuators, kinematics, control, planning and programming. Programming languages and concepts (e.g., C++, object oriented programming) used in robotics will be introduced and used with modern robotics programming toolboxes and frameworks. Prior experience with these languages will not be necessary. Previous experience with robotics is not required for this course. Offered as CSDS 275 and ECSE 275. Prereq: (ENGR 131 or EECS 132) and PHYS 121 and MATH 121.

CSDS 281. Logic Design and Computer Organization. 4 Units.

Fundamentals of digital systems in terms of both computer organization and logic level design. Organization of digital computers; information representation; boolean algebra; analysis and synthesis of combinational and sequential circuits; datapaths and register transfers; instruction sets and assembly language; input/output and communication; memory. Offered as CSDS 281 and ECSE 281. Prereq: ENGR 131 or EECS 132.

CSDS 290. Introduction to Computer Game Design and Implementation. 3 Units.

This class begins with an examination of the history of video games and of game design. Games will be examined in a systems context to understand gaming and game design fundamentals. Various topics relating directly to the implementation of computer games will be introduced including graphics, animation, artificial intelligence, user interfaces, the simulation of motion, sound generation, and networking. Extensive study of past and current computer games will be used to illustrate course concepts. Individual and group projects will be used throughout the semester to motivate, illustrate and demonstrate the course concepts and ideas. Group game development and implementation projects will culminate in classroom presentation and evaluation. Offered as CSDS 290 and ECSE 290. Prereq: EECS 132 or ENGR 131.

CSDS 293. Software Craftsmanship. 4 Units.

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring. Offered as CSDS 293 and CSDS 293N. Prereq: Computer Science Major and (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 293N. Software Craftsmanship. 4 Units.

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring. Offered as CSDS 293 and CSDS 293N. Prereq: (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 296. Independent Projects. 1 - 3 Units.

Independent projects in Computer and Data Science. Recommended preparation: ENGR 131 or EECS/CSDS/ECSE 132. Prereq: Limited to freshmen and sophomore students.

CSDS 297. Special Topics. 1 - 3 Units.

Special topics in Computer and Data Science. Prereq: Limited to freshmen and sophomores.

CSDS 302. Discrete Mathematics. 3 Units.

A general introduction to basic mathematical terminology and the techniques of abstract mathematics in the context of discrete mathematics. Topics introduced are mathematical reasoning, Boolean connectives, deduction, mathematical induction, sets, functions and relations, algorithms, graphs, combinatorial reasoning. Offered as CSDS 302, ECSE 302 and MATH 304. Prereq: MATH 122 or MATH 124 or MATH 126.

CSDS 305. Files, Indexes and Access Structures for Big Data. 3 Units.

Database management become a central component of a modern computing environment, and, as a result, knowledge about database systems has become an essential part of education in computer science and data science. This course is an introduction to the nature and purpose of database systems, fundamental concepts for designing, implementing and querying a database and database architectures. Objectives: -An expert knowledge of basic data structures, basic searching, sorting, methods, algorithm techniques, (such as greedy and divide and conquer) -In-depth knowledge on Search and Index Structures for large, heterogeneous data including multidimensional data, high dimensional data and data in metric spaces (e.g., sequences, images), on different search methods (e.g. similarity searching, partial match, exact match), and on dimensionality reduction techniques. Prereq: DSCI 234 or EECS 233.

CSDS 310. Algorithms. 3 Units.

Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as CSDS 310 and CSDS 310N. Prereq: (Computer Science Major/Minor or Data Science Major) and (EECS 302 or MATH 304) and (EECS 233 or DSCI 234 with a C or higher).

CSDS 310N. Algorithms. 3 Units.

Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as CSDS 310 and CSDS 310N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

CSDS 312. Introduction to Data Science Systems. 3 Units.

An introduction to the software and hardware architecture of data science systems, with an emphasis on Operating Systems and Computer Architecture that are relevant to Data Sciences systems. At the end of the course, the student should understand the principles and architecture of storage systems, file systems (especially, HDFS), memory hierarchy, and GPU. The student should have carried out projects in these areas, and should be able to critically compare various design decisions in terms of capability and performance. Prereq: DSCI 234.

CSDS 313. Introduction to Data Analysis. 3 Units.

In this class we will give a broad overview of data analysis techniques, covering techniques from data mining, machine learning and signal processing. Students will also learn about probabilistic representations, how to conduct an empirical study and support empirical hypotheses through statistical tests, and visualize the results. Course objectives: -Expose students to different analysis approaches. -Understand probabilistic representations and inference mechanisms. -Understand how to create empirical hypotheses and how to test them. Prereq: EECS 340 and DSCI 234.

CSDS 314. Computer Architecture. 3 Units.

This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, communication and network, memory hierarchy, computer arithmetic, input-output, and an introduction to RISC and super-scalar processors. Offered as CSDS 314 and ECSE 314. Prereq: EECS 281.

CSDS 315. Scalable Parallel Data Analysis. 3 Units.

This course provides an introduction to scalable and parallel data analysis using the most common frameworks and programming tools in the age of big data. Covered topics include parallel programming models, parallel hardware architectures, multi-threaded, multi-core programming, cluster computing and GPU programming. The course is designed to provide a heavily hands-on experience with several programming assignments. Prereq: DSCI 342.

CSDS 325. Computer Networks I. 3 Units.

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing, and NAT. Link layer: taxonomy, Ethernet, 802.11. Offered as CSDS 325 and CSDS 325N. Prereq: Computer Science Major with minimum Junior Standing and (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 325N. Computer Networks I. 3 Units.

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing, and NAT. Link layer: taxonomy, Ethernet, 802.11. Offered as CSDS 325 and CSDS 325N. Prereq: Minimum Junior Standing and (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 335D. Data Mining for Big Data. 3 Units.

With the unprecedented rate at which data is being collected today in almost all fields of human endeavor, there is an emerging economic and scientific need to extract useful information from it. Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases, and is a highly interdisciplinary field representing the confluence of several disciplines, including database systems, data warehousing, machine learning, statistics, algorithms, data visualization, and high-performance computing. This course is an introduction to the commonly used data mining techniques. In the first part of the course, students will develop a basic understanding of the basic concepts in data mining such as frequent pattern mining, association rule mining, basic techniques for data preprocessing such as normalization, regression, and classic matrix decomposition methods such as SVD, LU, and QR decompositions. In the second part of the course, students will develop a basic understanding of classification and clustering and be able to apply classic methods such as k-means, hierarchical clustering methods, nearest neighbor methods, association based classifiers. In the third part of the course, students will have a chance to study more advanced data mining applications such as feature selection in high-dimensional data, dimension reduction, and mining biological datasets. Prereq: DSCI 234 and DSCI 343.

CSDS 337. Compiler Design. 4 Units.

Design and implementation of compilers and other language processors. Scanners and lexical analysis; regular expressions and finite automata; scanner generators; parsers and syntax analysis; context free grammars; parser generators; semantic analysis; intermediate code generation; runtime environments; code generation; machine independent optimizations; data flow and dependence analysis. There will be a significant programming project involving the use of compiler tools and software development tools and techniques. Offered as CSDS 337 and ECSE 337. Prereq: (CSDS 233 or ECSE 233 or EECS 233) and (CSDS 281 or ECSE 281 or EECS 281).

CSDS 338. Intro to Operating Systems and Concurrent Programming. 4 Units.

Intro to OS: OS Structures, processes, threads, CPU scheduling, deadlocks, memory management, file system implementations, virtual machines, cloud computing. Concurrent programming: fork, join, concurrent statement, critical section problem, safety and liveness properties of concurrent programs, process synchronization algorithms, semaphores, monitors. UNIX systems programming: system calls, UNIX System V IPCs, threads, RPCs, shell programming. Offered as CSDS 338, ECSE, 338, CSDS 338N and ECSE 338N. Prereq: Computer Science Major or Minor and (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 338N. Intro to Operating Systems and Concurrent Programming. 4 Units.

Intro to OS: OS Structures, processes, threads, CPU scheduling, deadlocks, memory management, file system implementations, virtual machines, cloud computing. Concurrent programming: fork, join, concurrent statement, critical section problem, safety and liveness properties of concurrent programs, process synchronization algorithms, semaphores, monitors. UNIX systems programming: system calls, UNIX System V IPCs, threads, RPCs, shell programming. Offered as CSDS 338, ECSE, 338, CSDS 338N and ECSE 338N. Prereq: (CSDS 233 or ECSE 233 or EECS 233) with a C or higher.

CSDS 339. Web Data Mining. 3 Units.

Web crawling technology, web search and information extraction, unsupervised and semi-supervised learning techniques and their application to web data extraction, social network analysis, various pagerank algorithms, link analysis, web resource discovery, web, resource description framework (RDF), XML, Web Ontology Language (OWL). Prereq: (CSDS 338 or ECSE 338 or EECS 338) and (CSDS 341 or EECS 341) and (CSDS 302 or EECS 302 or MATH 304).

CSDS 340D. Machine Learning for Big Data. 3 Units.

Machine learning is a sub-field of Artificial Intelligence that is concerned with the design and analysis of algorithms that "learn" and improve with experience, While the broad aim behind research in this area is to build systems that can simulate or even improve on certain aspects of human intelligence, algorithms developed in this area have become very useful in analyzing and predicting the behavior of complex systems. Machine learning algorithms have been used to guide diagnostic systems in medicine, recommend interesting products to customers in e-commerce, play games at human championship levels, and solve many other very complex problems. This course is an introduction to algorithms for machine learning and their implementation in the context of big data. We will study different learning settings, the different algorithms that have been developed for these settings, and learn about how to implement these algorithms and evaluate their behavior in practice. We will also discuss dealing with noise, missing values, scalability properties and talk about tools and libraries available for these methods. At the end of the course, you should be able to: --Understand when to use machine learning algorithms; --Understand, represent and formulate the learning problem; --Apply the appropriate algorithm(s) or tools, with an understanding of the tradeoffs involved including scalability and robustness; --Correctly evaluate the behavior of the algorithm when solving the problem. Prereq: DSCI 234 and DSCI 343.

CSDS 341. Introduction to Database Systems. 3 Units.

Relational model, ER model, relational algebra and calculus, SQL, OBE, security, views, files and physical database structures, query processing and query optimization, normalization theory, concurrency control, object relational systems, multimedia databases, Oracle SQL server, Microsoft SQL server. Offered as CSDS 341 and CSDS 341N. Prereq: Computer Science Major and (EECS 302 or MATH 304) and EECS 233 with a C or higher.

CSDS 341D. Introduction to Databases: DS Major. 3 Units.

Database management become a central component of a modern computing environment, and, as a result, knowledge about database systems has become an essential part of education in computer science and data science. This course is an introduction to the nature and purpose of database systems, fundamental concepts for designing, implementing and querying a database and database architectures. Weeks 1-6 provide an overview of basic database systems concepts including database design, database systems architecture, and database querying, using relational model and SQL as query language. Weeks 7-10 Objects, Semi structured data, XML and RDF basics. Weeks 11-14 provide an overview of more advanced topics including Database System Architectures (Parallel Databases and Distributed Databases), and Data Warehousing and Information Retrieval. Students cannot receive credit for both CSDS341 and CSDS341D. Prereq: DSCI 234 or EECS 233.

CSDS 341N. Introduction to Database Systems. 3 Units.

Relational model, ER model, relational algebra and calculus, SQL, OBE, security, views, files and physical database structures, query processing and query optimization, normalization theory, concurrency control, object relational systems, multimedia databases, Oracle SQL server, Microsoft SQL server. Offered as CSDS 341 and CSDS 341N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

CSDS 343. Theoretical Computer Science. 3 Units.

Introduction to different classes of automata and their correspondence to different classes of formal languages and grammars, computability, complexity and various proof techniques. Offered as CSDS 343 and MATH 343. Prereq: EECS 302 or MATH 304.

CSDS 344. Computer Security. 3 Units.

General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security. Recommended preparation: EECS/CSDS/ECSE 132, EECS/CSDS 293, EECS/CSDS 325 and EECS/CSDS 338. Offered as CSDS 344 and CSDS 444.

CSDS 345. Programming Language Concepts. 3 Units.

This course examines the four main programming paradigms: imperative, object-oriented, functional, and logical. It is assumed that students will come to the course with significant exposure to object-oriented programming and some exposure to imperative programming. The course will teach the functional paradigm in depth, enhance the students' knowledge of the object-oriented and imperative paradigms, and introduce the logical paradigm. The course will explore language syntax, semantics, names/scopes, types, expressions, assignment, subprograms, abstraction and inheritance. This exploration will have several forms. Students will study the programming language concepts at a theoretical level, use the concepts in functional language programming, and implement the concepts by designing language interpreters. Offered as CSDS 345 and CSDS 345N. Prereq: Computer Science Major and (EECS 302 or MATH 304) and EECS 233 with a C or higher.

CSDS 345N. Programming Language Concepts. 3 Units.

This course examines the four main programming paradigms: imperative, object-oriented, functional, and logical. It is assumed that students will come to the course with significant exposure to object-oriented programming and some exposure to imperative programming. The course will teach the functional paradigm in depth, enhance the students' knowledge of the object-oriented and imperative paradigms, and introduce the logical paradigm. The course will explore language syntax, semantics, names/scopes, types, expressions, assignment, subprograms, abstraction and inheritance. This exploration will have several forms. Students will study the programming language concepts at a theoretical level, use the concepts in functional language programming, and implement the concepts by designing language interpreters. Offered as CSDS 345 and CSDS 345N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

CSDS 356. Data Privacy. 3 Units.

Introduction to privacy, economics and incentives, crypto-based solution for privacy, hiding data from the database user, hiding access patterns from the database owner, anonymous routing and TOR, privacy in online social networks, privacy in cellular and Wi-Fi networks, location privacy, privacy in e-cash systems, privacy in e-voting, genomic privacy. Offered as CSDS 356 and CSDS 456. Prereq: (EECS 132 and EECS 233 and any STAT course) or (Graduate student in Computing & Info Science or Computer Engineering).

CSDS 366. Computer Graphics. 3 Units.

Theory and practice of computer graphics: object and environment representation including coordinate transformations image extraction including perspective, hidden surface, and shading algorithms; and interaction. Covers a wide range of graphic display devices and systems with emphasis in interactive shaded graphics. Offered as CSDS 366, ECSE 366, CSDS 466 and ECSE 466. Prereq: EECS 233.

CSDS 373. Modern Robot Programming. 3 Units.

The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project. Offered as CSDS 373, ECSE 373, CSDS 473 and ECSE 473.

CSDS 376. Mobile Robotics. 4 Units.

Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams. Offered as CSDS 376 and ECSE 376. Prereq: EECS 373 or EECS 473.

CSDS 377. Introduction to Connected Devices. 3 Units.

Introduction to Connected Devices (e.g., Internet of Things). Undergraduates work in pairs to build a complete connected-device system, an embedded device with wireless networking, cloud and web, and mobile, and then develop hands-on experience with systems-level aspects of the connected-device system, including analytics, remote firmware update, load testing, and essential security. Students learn about current architectures, languages, and technologies, such as Pub/Sub (MQTT), Python, Objective-C, Python Django, JavaScript, HTML/CSS, and Bluetooth Low Energy. Offered as CSDS 377 and ECSE 377.

CSDS 390. Advanced Game Development Project. 3 Units.

This game development project course will bring together an inter-professional group of students in the fields of engineering, computer science, and art to focus on the design and development of a complete, fully functioning computer game as an interdisciplinary team. The student teams are given complete liberty to design their own fully functional games from their original concept to a playable game published in an online marketplace. Student teams will experience the entire game development cycle as they execute their projects. Responsibilities include creating a game idea, writing a story, developing the artwork, designing characters, implementing music and sound effects, programming and testing the game, and publishing the final project. Students enrolled in 487 will develop a healthcare or education virtual environment or video game in collaboration with a mentor who has expertise in the chosen area. Offered as CSDS 390, ECSE 390, and ECSE 487. Prereq: EECS 233 and EECS 290.

CSDS 391. Introduction to Artificial Intelligence. 3 Units.

This course is an introduction to artificial intelligence. We will study the concepts that underlie intelligent systems. Topics covered include problem solving with search, constraint satisfaction, adversarial games, knowledge representation and reasoning using propositional and first order logic, reasoning under uncertainty, introduction to machine learning, automated planning, reinforcement learning and natural language processing. Recommended: basic knowledge of probability and statistics. Prereq: ENGR 131 or EECS 132.

CSDS 392. App Development for iOS. 3 Units.

This course is an introduction to app development for iPhone and iPad using Cocoa Touch Framework and Xcode development environment. Topics include Swift programming language and iOS SDK/foundations, object-oriented design and model-view-controller framework, user interface design using Xcode. Additional topics may include data management, map applications, animations and some recent developments in iOS. Recommended preparation: experiences in object-oriented programming and Mac OS; knowledge in software engineering and databases. Prereq: EECS 293 and Junior or Senior standing.

CSDS 393. Software Engineering. 3 Units.

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project. Offered as CSDS 393, CSDS 393N, and CSDS 493. Prereq: (Computer Science Major/Minor or Data Science Major) and (EECS 233 or DSCI 234 with a C or higher).

CSDS 393N. Software Engineering. 3 Units.

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project. Offered as CSDS 393, CSDS 393N, and CSDS 493. Prereq: (Computer Science Major/Minor or Data Science Major) and (EECS 233 or DSCI 234 with a C or higher).

CSDS 394. Introduction to Information Theory. 3 Units.

This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering. Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory. Recommended preparation: MATH 201 or MATH 307. Offered as MATH 394, CSDS 394, ECSE 394, MATH 494, CSDS 494 and ECSE 494. Prereq: MATH 223 and MATH 380 or requisites not met permission.

CSDS 395. Senior Project in Computer Science. 4 Units.

Capstone course for computer science seniors. Material from previous and concurrent courses used to solve computer programming problems and to develop software systems. Professional engineering topics such as project management, engineering design, communications, and professional ethics. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Scheduled formal project presentations during last week of classes. Counts as SAGES Senior Capstone. Prereq: Senior standing.

CSDS 396. Independent Projects. 1 - 6 Units.

Independent projects in Computer and Data Science. Prereq: Limited to juniors and seniors.

CSDS 397. Special Topics. 1 - 6 Units.

Special topics in Computer and Data Science. Prereq: Limited to juniors and seniors.

CSDS 400T. Graduate Teaching I. 0 Unit.

This course will provide the Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities: grading homeworks, quizzes, and exams, having office hours for students, tutoring students. Recommended preparation: Ph.D. student in CSDS department.

CSDS 405. Data Structures and File Management. 3 Units.

Fundamental concepts: sequential allocation, linked allocation, lists, trees, graphs, internal sorting, external sorting, sequential, binary, interpolation search, hashing file, indexed files, multiple level index structures, btrees, hashed files. Multiple attribute retrieval; inverted files, multi lists, multiple-key hashing, hd trees. Introduction to data bases. Data models. Recommended preparation: EECS/CSDS/ECSE 233 and MATH 304. Prereq: EECS 341 or Graduate standing.

CSDS 410. Analysis of Algorithms. 3 Units.

This course covers fundamental topics in algorithm design and analysis in depth. Amortized analysis, NP-completeness and reductions, dynamic programming, advanced graph algorithms, string algorithms, geometric algorithms, local search heuristics. Offered as CSDS 410 and OPRE 454. Prereq: EECS 340.

CSDS 425. Computer Networks I. 3 Units.

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing and NAT. Link layer: taxonomy, Ethernet, 802.11. Recommended preparation: EECS/CSDS/ECSE 338.

CSDS 427. Internet Security and Privacy. 3 Units.

This course introduces students to research on Internet security and privacy. Covered topics include denial of service attacks, attacks enabled by man-in-the-middle surveillance, communication hijacking, botnet and fast-flux networks, email and Web spam, threats to privacy on the Internet, and Internet censorship. The course will be based on a collection of research papers. Students will be required to attend lectures, read the materials, prepare written summaries of discussed papers, present a paper in class, complete a course project and take the final exam (in the form of the course project presentation). Prereq: EECS 325 or EECS 425 or graduate standing in Computer Science or Computer Engineering.

CSDS 428. Computer Communications Networks II. 3 Units.

Introduction to topics and methodology in computer networks and middleware research. Traffic characterization, stochastic models, and self-similarity. Congestion control (Tahoe, Reno, Sack). Active Queue Management (RED, FQ) and explicit QoS. The Web: overview and components, HTTP, its interaction with TCP, caching. Overlay networks and CDN. Expected work includes a course-long project on network simulation, a final project, a paper presentation, midterm, and final test. Recommended preparation: EECS/CSDS 425.

CSDS 433. Database Systems. 3 Units.

Basic issues in file processing and database management systems. Physical data organization. Relational databases. Database design. Relational Query Languages, SQL. Query languages. Query optimization. Database integrity and security. Object-oriented databases. Object-oriented Query Languages, OQL. Recommended preparation: MATH 304. Prereq: EECS 341 or Graduate standing.

CSDS 435. Data Mining. 3 Units.

Data Mining is the process of discovering interesting knowledge from large amounts of data stored either in databases, data warehouses, or other information repositories. Topics to be covered includes: Data Warehouse and OLAP technology for data mining, Data Preprocessing, Data Mining Primitives, Languages, and System Architectures, Mining Association Rules from Large Databases, Classification and Prediction, Cluster Analysis, Mining Complex Types of Data, and Applications and Trends in Data Mining. Prereq: EECS 341 or Graduate standing.

CSDS 438. High Performance Computing. 3 Units.

High performance computing (HPC) leverages parallel processing in order to maximize speed and throughput. This hands-on course will cover theoretical and practical aspects of HPC. Theoretical concepts covered include computer architecture, parallel programming, and performance optimization. Practical applications will be discussed from various information and scientific fields. Practical considerations will include HPC job management and Unix scripting. Weekly assessments and a course project will be required. Offered as CSDS 438 and ECSE 438. Prereq: EECS 233 or graduate standing.

CSDS 439. Web Data Mining. 3 Units.

Web crawling technology, web search and information extraction, unsupervised and semi-supervised learning techniques and their application to web data extraction, social network analysis, various pagerank algorithms, link analysis, web resource discovery, web, resource description framework (RDF), XML, Web Ontology Language (OWL). Recommended preparation: EECS/CSDS/ECSE 338, EECS/CSDS 341.

CSDS 440. Machine Learning. 3 Units.

Machine learning is a subfield of Artificial Intelligence that is concerned with the design and analysis of algorithms that "learn" and improve with experience, While the broad aim behind research in this area is to build systems that can simulate or even improve on certain aspects of human intelligence, algorithms developed in this area have become very useful in analyzing and predicting the behavior of complex systems. Machine learning algorithms have been used to guide diagnostic systems in medicine, recommend interesting products to customers in e-commerce, play games at human championship levels, and solve many other very complex problems. This course is focused on algorithms for machine learning: their design, analysis and implementation. We will study different learning settings, including supervised, semi-supervised and unsupervised learning. We will study different ways of representing the learning problem, using propositional, multiple-instance and relational representations. We will study the different algorithms that have been developed for these settings, such as decision trees, neural networks, support vector machines, k-means, harmonic functions and Bayesian methods. We will learn about the theoretical tradeoffs in the design of these algorithms, and how to evaluate their behavior in practice. At the end of the course, you should be able to: --Recognize situations where machine learning algorithms are applicable; --Understand, represent and formulate the learning problem; --Apply the appropriate algorithm(s), or if necessary, design your own, with an understanding of the tradeoffs involved; --Correctly evaluate the behavior of the algorithm when solving the problem. Prereq: EECS 391 or EECS 491 or consent of instructor.

CSDS 441. Internet Applications. 3 Units.

This course exposes students to research in building and scaling internet applications. Covered topics include Web services, scalable content delivery, applications of peer-to-peer networks, and performance analysis and measurements of internet application platforms. The course is based on a collection of research papers and protocol specifications. Students are required to read the materials, present a paper in class, prepare short summaries of discussed papers, and do a course project (team projects are encouraged). Prereq: EECS 325 or EECS 425.

CSDS 442. Causal Learning from Data. 3 Units.

This course introduces key concepts and techniques for characterizing, from observational or experimental study data and from background information, the causal effect of a specific treatment, exposure, or intervention (e.g., a medical treatment) upon an outcome of interest (e.g., disease status). The fundamental problem of causal inference is the impossibility of observing the effects of different and incompatible treatments on the same individual or unit. This problem is overcome by estimating an average causal effect over a study population. Making valid causal inferences with observational data is especially challenging, because of the greater potential for biases (confounding bias, selection bias, and measurement bias) that can badly distort causal effect estimates. Consequently, this topic has been the focus of intense cross-disciplinary research in recent years. Causal inference techniques will be illustrated by applications in several fields such as computer science, engineering, medicine, public health, biology, genomics, neuroscience, economics, and social science. Course grading will be based on quizzes, homeworks, a class presentation, and a causal data analysis project. Specific topics: treatments, exposures, and interventions; causal effects and causal effect measures; confounding bias; potential outcomes and counterfactuals; randomized experiments; observational studies; causal directed acyclic graphs (DAGs); exchangeability and conditional exchangeability; effect modification; causal interactions; nonparametric structural equations; Pearl's Back-Door Criterion, Front-Door Criterion, and related results; covariate adjustment; matching on covariates; selection bias; measurement bias; instrumental variables; causal modeling; inverse probability weighting; marginal structural models; standardization; structural nested models; outcome regression; propensity scores; sensitivity analysis. Prereq: EECS 440 or MATH 380 or STAT 312 or STAT 313 or STAT 332 or STAT 333 or Requisites Not Met permission.

CSDS 444. Computer Security. 3 Units.

General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security. Recommended preparation: EECS/CSDS/ECSE 132, EECS/CSDS 293, EECS/CSDS 325 and EECS/CSDS 338. Offered as CSDS 344 and CSDS 444.

CSDS 448. Smartphone Security. 3 Units.

This course is designed to better prepare undergraduate and graduate students for researching and developing in the neighborhood of mobile and software security. Lectures, paper readings and presentations, in-class discussions, and projects are the main components. The course covers the basics of Android programming and a wide range of security issues and solutions concerning mobile platforms, including permission analysis, textual artifacts analysis, malware analysis, program analysis, and UI analysis. Students should expect one literature survey paper and one system-building or empirical study project on one selected security solution in mobile app security. Prereq: EECS 132 and a Graduate or Undergraduate Computer Science major.

CSDS 455. Applied Graph Theory. 3 Units.

This course serves as an introduction to many of the important aspects of graph theory. Topics include connectivity, flows, matchings, planar graphs, and graph coloring with additional topics selected from extremal graphs, random graphs, bounded treewidth graphs, social networks and small world graphs. The class will explore the underlying mathematical theory with a specific focus on the development and analysis of graph algorithms. Prereq: Graduate Student or (EECS 302 or MATH 304 or MATH 305 or MATH 307).

CSDS 456. Data Privacy. 3 Units.

Introduction to privacy, economics and incentives, crypto-based solution for privacy, hiding data from the database user, hiding access patterns from the database owner, anonymous routing and TOR, privacy in online social networks, privacy in cellular and Wi-Fi networks, location privacy, privacy in e-cash systems, privacy in e-voting, genomic privacy. Offered as CSDS 356 and CSDS 456. Prereq: (EECS 132 and EECS 233 and any STAT course) or (Graduate student in Computing & Info Science or Computer Engineering).

CSDS 458. Introduction to Bioinformatics. 3 Units.

Fundamental algorithmic and statistical methods in computational molecular biology and bioinformatics will be discussed. Topics include introduction to molecular biology and genetics, DNA sequence analysis, polymorphisms and personal genomics, structural variation analysis, gene mapping and haplotyping algorithms, phylogenetic analysis, biological network analysis, and computational drug discovery. Much of the course will focus on the algorithmic techniques, including but not limited to, dynamic programming, hidden Markov models, string algorithms, graph theories and algorithms, and some representative data mining algorithms. Paper presentations and course projects are also required. Prereq: EECS 340 or Graduate standing.

CSDS 459. Bioinformatics for Systems Biology. 3 Units.

Description of omic data (biological sequences, gene expression, protein-protein interactions, protein-DNA interactions, protein expression, metabolomics, biological ontologies), regulatory network inference, topology of regulatory networks, computational inference of protein-protein interactions, protein interaction databases, topology of protein interaction networks, module and protein complex discovery, network alignment and mining, computational models for network evolution, network-based functional inference, metabolic pathway databases, topology of metabolic pathways, flux models for analysis of metabolic networks, network integration, inference of domain-domain interactions, signaling pathway inference from protein interaction networks, network models and algorithms for disease gene identification, identification of dysregulated subnetworks network-based disease classification. Offered as CSDS 459 and SYBB 459. Prereq: EECS 458 or BIOL 250.

CSDS 466. Computer Graphics. 3 Units.

Theory and practice of computer graphics: object and environment representation including coordinate transformations image extraction including perspective, hidden surface, and shading algorithms; and interaction. Covers a wide range of graphic display devices and systems with emphasis in interactive shaded graphics. Offered as CSDS 366, ECSE 366, CSDS 466 and ECSE 466. Prereq: Graduate standing or Requisites Not Met permission.

CSDS 473. Modern Robot Programming. 3 Units.

The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project. Offered as CSDS 373, ECSE 373, CSDS 473 and ECSE 473.

CSDS 476. Mobile Robotics. 3 Units.

Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams. Offered as CSDS 476 and ECSE 476. Prereq: EECS 373 or EECS 473.

CSDS 477. Advanced Algorithms. 3 Units.

Design and analysis of efficient algorithms, with emphasis on network flow, combinatorial optimization, and randomized algorithms. Linear programming: duality, complementary slackness, total unimodularity. Minimum cost flow: optimality conditions, algorithms, applications. Game theory: two-person zero-sum games, minimax theorems. Probabilistic analysis and randomized algorithms: examples and lower bounds. Approximation algorithms for NP-hard problems: examples, randomized rounding of linear programs. Prereq: EECS 302 and EECS 340 and MATH 380 and (MATH 201 or MATH 307).

CSDS 478. Computational Neuroscience. 3 Units.

Computer simulations and mathematical analysis of neurons and neural circuits, and the computational properties of nervous systems. Students are taught a range of models for neurons and neural circuits, and are asked to implement and explore the computational and dynamic properties of these models. The course introduces students to dynamical systems theory for the analysis of neurons and neural learning, models of brain systems, and their relationship to artificial and neural networks. Term project required. Students enrolled in MATH 478 will make arrangements with the instructor to attend additional lectures and complete additional assignments addressing mathematical topics related to the course. Recommended preparation: MATH 223 and MATH 224 or BIOL 300 and BIOL 306. Offered as BIOL 378, COGS 378, MATH 378, BIOL 478, CSDS 478, EBME 478, ECSE 478, MATH 478 and NEUR 478.

CSDS 489. Robotics I. 3 Units.

Orientation and configuration coordinate transformations, forward and inverse kinematics and Newton-Euler and Lagrange-Euler dynamic analysis. Planning of manipulator trajectories. Force, position, and hybrid control of robot manipulators. Analytical techniques applied to select industrial robots. Recommended preparation: EMAE 181. Offered as CSDS 489, ECSE 489 and EMAE 489.

CSDS 490. Digital Image Processing. 3 Units.

Digital images are introduced as two-dimensional sampled arrays of data. The course begins with one-to-one operations such as image addition and subtraction and image descriptors such as the histogram. Basic filters such as the gradient and Laplacian in the spatial domain are used to enhance images. The 2-D Fourier transform is introduced and frequency domain operations such as high and low-pass filtering are developed. It is shown how filtering techniques can be used to remove noise and other image degradation. The different methods of representing color images are described and fundamental concepts of color image transformations and color image processing are developed. One or more advanced topics such as wavelets, image compression, and pattern recognition will be covered as time permits. Programming assignments using software such as MATLAB will illustrate the application and implementation of digital image processing. Offered as CSDS 490 and ECSE 490.

CSDS 491. Artificial Intelligence: Probabilistic Graphical Models. 3 Units.

This course is a graduate-level introduction to Artificial Intelligence (AI), the discipline of designing intelligent systems, and focuses on probabilistic graphical models. These models can be applied to a wide variety of settings from data analysis to machine learning to robotics. The models allow intelligent systems to represent uncertainties in an environment or problem space in a compact way and reason intelligently in a way that makes optimal use of available information and time. The course covers directed and undirected probabilistic graphical models, latent variable models, associated exact and approximate inference algorithms, and learning in both discrete and continuous problem spaces. Practical applications are covered throughout the course. Prereq: EECS 391 or requisites not met permission.

CSDS 493. Software Engineering. 3 Units.

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project. Offered as CSDS 393, CSDS 393N, and CSDS 493. Prereq: (Computer Science Major/Minor or Data Science Major) and (EECS 233 or DSCI 234 with a C or higher).

CSDS 494. Introduction to Information Theory. 3 Units.

This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering. Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory. Recommended preparation: MATH 201 or MATH 307. Offered as MATH 394, CSDS 394, ECSE 394, MATH 494, CSDS 494 and ECSE 494.

CSDS 496. Artificial Intelligence: Sequential Decision Making. 3 Units.

This course will study the formulation and solution of decision making problems by automated agents. Topics covered include one-shot decision making (decision trees and influence diagrams), Markov decision processes (MDPs) , automated classical and probabilistic planning, reinforcement learning (RL), hierarchical planning and RL, partially observable MDPs, Bayesian RL, collaborative multi-agent systems. Recommended preparation: EECS/CSDS 491 (Probabilistic Graphical Models). Prereq: EECS 391.

CSDS 497. Artificial Intelligence: Statistical Natural Language Processing. 3 Units.

This course gives students an overview of the stat of the art in natural language processing. We will discuss computational aspects of language modeling through probabilistic models, computational approaches to syntax (parsing) and semantic representations, discourse and dialog. We will study the applications of these techniques to a variety of problems including information extraction, translation and summarization. At the end of the course a student should be able to (i) understand the various statistical models and algorithms for NLP (ii) modify them as needed or design novel approaches for specific NLP tasks and (iii) understand how to evaluate the performance of these models and compare them to alternatives. Prereq: EECS 440.

CSDS 499. Algorithmic Robotics. 3 Units.

This course introduces basic algorithmic techniques in robotic perception and planning. Course is divided into two parts. The first part introduces probabilistic modeling of robotic motion and sensing, Gaussian and nonparametric filters, and algorithms for mobile robot localization. The second part introduces fundamental deterministic and randomized algorithms for motion planning. Offered as CSDS 499 and ECSE 499. Prereq: Graduate Standing or Requisites Not Met permission.

CSDS 500. CSDS Colloquium. 0 Unit.

Seminars on current topics in Computer and Data Science.

CSDS 500T. Graduate Teaching II. 0 Unit.

This course will provide the Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities: grading homeworks, quizzes, and exams, having office hours for students, running recitation sessions, providing laboratory assistance. Recommended preparation: Ph.D. student in CSDS department.

CSDS 531. Computer Vision. 3 Units.

The goal of computer vision is to create visual systems that recognize objects and recover structures in complex 3D scenes. This course emphasizes both the science behind our understanding of the fundamental problems in vision and the engineering that develops mathematical models and inference algorithms to solve these problems. Specific topics include feature detection, matching, and classification; visual representations and dimensionality reduction; motion detection and optical flow; image segmentation; depth perception, multi-view geometry, and 3D reconstruction; shape and surface perception; visual scene analysis and object recognition. Offered as CSDS 531 and ECSE 531.

CSDS 589. Robotics II. 3 Units.

Survey of research issues in robotics. Force control, visual servoing, robot autonomy, on-line planning, high-speed control, man/machine interfaces, robot learning, sensory processing for real-time control. Primarily a project-based lab course in which students design real-time software executing on multi-processors to control an industrial robot. Recommended preparation: EECS/CSDS/ECSE 489. Offered as CSDS 589 and ECSE 589.

CSDS 600. Special Topics. 1 - 18 Units.


CSDS 600T. Graduate Teaching III. 0 Unit.

This course will provide Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities running recitation sessions, providing laboratory assistance, developing teaching or lecture materials presenting lectures. Recommended preparation: Ph.D. student in CSES department.

CSDS 601. Independent Study. 1 - 18 Units.


CSDS 620. Special Topics. 1 - 18 Units.


CSDS 621. Special Projects. 1 - 18 Units.


CSDS 651. Thesis M.S.. 1 - 18 Units.

Credit as arranged.

CSDS 695. Project M.S.. 1 - 9 Units.

Research course taken by Plan B M.S. students. Prereq: Enrolled in the EECS Plan B MS Program.

CSDS 701. Dissertation Ph.D.. 1 - 9 Units.

Credit as arranged.