Teaching

Here is some information on the courses that I often teach. The course syllabus will contain all the details; this page is for those who want to preview what can be expected in the course.


CPSC 375: Introduction to Data Science and Big Data

The course covers some of the fundamental methods for data preparation and analysis, together called "data science." The course also introduces "big data" and some of its core ideas. The methods are all covered using the R programming language. Prior experience with R is not necessary. The prerequisites are experience with some programming language (CPSC 131) and statistics (MATH 338). Note that though machine learning is considered integral to data science, this course does not cover machine learning methods in depth because there is a course dedicated to that: CPSC 483Opens in new window . Similarly, core concepts from statistics are covered in MATH 338.

CPSC 375 is an elective course for Computer Science majors (all catalog years).

Textbooks (all are online and free)

[B1] R for Data Science Opens in new window , Hadley Wickham and Garrett Grolemund

[B2] Mining of Massive Datasets, Jure Leskovec, Anand Rajaraman, and Jeffrey D. Ullman, December 2014, ISBN: 9781107077232, Cambridge University Press (free e-book )

[B3] Mastering Spark with R , Javier Luraschi, Kevin Kuo, Edgar Ruiz

Optional:

Typical course outline for CPSC 375
Week Material Textbook Sections

1

What is data science? Introduction to R

B1: Ch. 1-2

2

Visualization

B1: Ch. 3

3

Exploratory data analysis

B1: Ch. 4-7

4

Data wrangling

B1; Ch. 5

5

Tidy data

B1: Ch. 12

6

Linear modeling

B1: Ch. 22-24

7

Nearest neighbors classification; Distance measures

B2: Ch. 12.4; B2: Ch. 7.3.1-7.3.3

8

K-means clustering; Evaluation metrics

Lecture slides

9

Review and midterm exam

 

10

Introduction to IoT; Time-series data

Lecture slides

11

Time-series data (contd.); Text data

Lecture slides

12

Text data (contd.)

Lecture slides

13

Data storage

B2: Ch. 2.1

14

Big data platforms (MapReduce)

B2: Ch. 2.2

15

Big data platforms (Apache Spark)

B3

finals

final exam (covers material after midterm)

 

CPSC 481: Artificial Intelligence

This course covers some of the established methods in Artificial Intelligence (AI). AI is a broad area and this course introduces three approaches: search algorithms, knowledge representation using formal logic, and probabilities for reasoning with uncertainty. Homework assignments involve programming in Python. The course prerequisites are CPSC 335 (algorithms) and MATH 338 (statistics).

CPSC 481 is a required course for all Computer Science majors.

Textbooks

Required: Artificial Intelligence A Modern Approach, 4th edition, Stuart Russell and Peter Norvig [RN]

Optional: Artificial Intelligence: Structures and Strategies for Complex Problem Solving, 6th edition, George F. Luger, Pearson [Lug]

Typical course outline for CPSC 481
Week Material Textbook Sections

1

Introduction to AI; Properties of environments

RN: Ch. 1, 2 ; Lug: Ch. 1

2

State space representation; Search: DFS 

RN: 3.1-3.2, 3.3; Lug: 3.1, 3.2

3

Search: BFS, iterative deepening 

RN: 3.4; Lug: 3.2

4

Search: heuristics, best first search, A*

RN: 3.5, 3.6; Lug: 4.0, 4.2, 4.3

5

Search: adversarial search (minimax, 𝛼-𝛽 pruning)

RN: 5.1-5.3; Lug: 4.4

6

Search: local search (hill climbing, simulated annealing, genetic algorithms)

RN: 4.1; Lug: 4.1.1, 12.1

7

Logic and reasoning: propositional logic

RN: 7-7.5; Lug: 2.1

8

Logic and reasoning: predicate logic

RN: 8-8.3; Lug: 2.2

9

Review and midterm exam

 

10

Logic and reasoning: Prolog

RN: 9.4

11

Reasoning with uncertainty: Bayes rule, naive Bayes classifier

RN: 12.1-12.6; Lug: 5.2-5.4

12

Reasoning with uncertainty: Bayesian networks

RN: 13.1-13.2; Lug: 9.3.1-9.3.3

13

Reasoning with uncertainty: Bayesian networks (contd.)

RN: 13.1-13.2; Lug: 9.3.1-9.3.3

14

Ethics of AI

RN: 27.3

15

Project presentations

 

finals

final exam (covers material after midterm)