It's Computational Data Science

. We'll come back to what that is.

Course web site: in CourSys, `https://coursys.sfu.ca/2023fa-cmpt-353-d1/pages/`

.

Whoever you are, I'm glad you're here.

My plan is to keep the parts of this course that worked best in-person pre-pandemic, and the parts that worked best online. Basically:

- Lectures by video.
- Hands-on help (office hours, etc) in-person.
- Quizzes/Exams in-person.

Lectures will be pre-recorded.

In the lecture time, they will be available as a YouTube Premier

(≈ watch party) in ≈50 minute chunks. Greg will be available in YouTube chat to answer questions during that time.

They will be available as regular YouTube videos for viewing later.

- Weekly exercises: 12 × 3.5% = 42%
- Project: 26%
- Quizzes: 2 × 10% = 20%
- Final quiz: 12%

Late penalty: 20%/day.

Due Fridays. My goal: make sure you actually try out the things we have talked about and see the reality of applying them.

Will contain some short problems to get you used to the tools, expanding to something a more interesting real

problem.

In the lectures/exercises, I intend to explore what I consider the core

of data science.

The project will let you integrate those techniques, and explore ideas on the edges of that, depending what interests you.

I will (hope to?) post project topic options related to topics like…

- natural language processing
- image recognition
- signal processing

Or if you have something else in mind, we can discuss it.

A few details:

- Groups of 2–3 (or something else?).
- Take the problem. Use the techniques from the course, and explore others to sensibly attack the problem.
- In a report, summarize your methods, findings, and what worked/didn't.
- Due date may shift, depending on our final exam date.

Quizzes: 10% each, **in-person**. Dates may change if necessary, but planned during lecture times:

- Oct 18 (Wednesday of week 7),
- Nov 15 (Wednesday of week 11).

Final Quiz: whenever our final exam

is scheduled.

Instructor: Greg Baker <[email protected]>.

Office hour: Wednesdays 14:00–15:00 in TASC1 9229.

TAs: to be announced.

Office hours: details later.

Mondays: lectures

premier as scheduled, live chat. Regular YouTube videos after that.

Wednesdays: usually no lectures

. The TAs and I will all be available for consultation during the lecture time in CSIL (ASB 9838).

Textbooks: none.

Possible reference material:

- Python Data Science Handbook [SFU library]. Also on Github. Good overview of Python, Pandas, matplotlib, Scikit-Learn.
- Python for Data Analysis [SFU library]. Intro to data science workflow, focussing on Python tools.

Possible reference material (continued):

- Data Science from Scratch [SFU library]. Building data science tools from scratch so you can see the details.
- Think Like a Data Scientist [SFU library]. Overview of approaching data science problems.
- Additional links to be provided on course web site.

Python 3 will be the primary programming language language used in the course. If you aren't comfortable with it, you need to be (very) soon.

StackExchange Data Science tags (as of April 2023):

Language | Tagged Qs |
---|---|

Python | 6613 |

R | 1478 |

Matlab | 156 |

Java | 58 |

Scala | 48 |

This will be a programming-heavy course. If you don't really like programming, this might not be the course for you.

The programming style will be very library-heavy, which is realistic in the modern world. We will use many libraries: NumPy, Pandas, matplotlib, scikit-learn, statsmodels, ….

That means you'll spend a lot of time reading the docs and fighting to make the tools do what you want them to, and less implementing the logic yourself. That's also realistic.

The code you would have written would almost certainly have been slower and worse.

I will feel free to increase the amount of assignment work a little from my usual level because of the missing

hour of lecture.

To get credit for this course, I expect you to demonstrate that you know how to use programming techniques to manipulate and analyse data. That means:

- A pass on the weighted average of the stuff where you demonstrate programming ability: exercises + project.
- A pass on the weighted average of the quizzes.

Failure to do these may result in failing the course.

Academic Honesty: it's important, as always.

If you're using an online source, leave a comment.

def this_function(p1, p2): # adapted from http://stackoverflow.com/a/21623206/1236542 ...

That's all I ask, but remember to do it.

You are expected to do the work in this course yourself (or as a group for the project). Whenever you submit any work at the University, you're implicitly certifying this is my own independent work

.

You cannot copy your solution from somewhere else, even if you understand it, even if you change to try to make it unrecognizable. If you work with another student, we shouldn't be able to tell from the results.

More details on course web site.

The quizzes are regular tests: individual work, closed book.

I will be asking for a grade of FD in the course for any academic dishonesty on quizzes.

Computational Data Science

: data science, but with computation as the focus.

But what is data science?

According to Wikipedia: an interdisciplinary academic field that uses… [various disciplines] to extract or extrapolate knowledge and insights from… data.

According to Pat Hanrahan, Tableau Software: [The combination of] business knowledge, analytical skills, and computer science.

According to Daniel Tunkelang, LinkedIn: [The ability to] obtain, scrub, explore, model and interpret data, blending hacking, statistics and machine learning.

According to Joel Grus: There's a joke that says a data scientist is someone who knows more statistics than a computer scientist and more computer science than a statistician.… We'll says that a data scientist is someone who extracts insights from messy data.

According to Drew Conway, Alluvium:

My definitions:

- Data Science
- You get some data. Then what do you do to get answers from it? Whatever that is, that's data science.
- Computational Data Science
- You get some data. You know how to program. Then what do you do?

Why is data science

so popular? Is it new?

There's more data being collected: web access logs, purchase history, click-through rates, location history, sensor data, ….

Sometimes the volume of data is big: too big to manage easily. That's where big data

starts.

People want answers/insights from that data: Is the marketing campaign working? Is the UI actually usable? What if we did `X` instead of `Y`?

New techniques: Machine learning lets us attack questions that were previously unanswerable. Computer scientists are realizing that statistics is important; statisticians are realizing that computer science is important.

- Data science: what is it? How does data become useful?
- Data processing tools: Python + NumPy + Pandas; analysis tools in Python.
- Data aquisition. Or
where do we find data?

- Getting data into shape: cleaning; extract/transform/load.

- Making sense of data: statistics. Or
it turns out that stats course was useful

. - Making sense of data: machine learning. Or
it's like AI, except it works

. - Data analysis strategies.

- Big data tools: Apache Spark and a compute cluster.
- Data visualization and communicating results.