Unsyllabus#

Important Details#

Name

Description

Course

DATA 531

Term

2021 Winter Term 1

Instructor

Dr. Firas Moosvi (he/his/him)

Lectures

Monday, Wednesday from 11:00 AM - 12:30 PM: Online Via Zoom

Labs

Wednesdays 8:30 am - 9:30 am and 13:30 pm - 15:30 pm: Online Via Zoom

Student Hours

To get live 1 on 1 help in the course, use Zoom at various times (see below for schedule).

Canvas URL

https://canvas.ubc.ca/courses/81270

Course Discussion

To ask any course-related questions, use private (personal, not useful for anyone else) or public (helpful for other) messages on Slack

What do I need to purchase for this course?#

Being very conscious of the high tuition and technology costs, we have made efforts to remove the additional cost of taking this course. All course content, references, and resources provided in this course are free and open source, and can be considered open educational resources (OER).

Contact Us#

Team Member

Pronounce as

Contact

Student Hour

Dr. Firas Moosvi (he/his/him); Instructor

Fur-az Moose-vee

Contact via Slack

TBD

Corey Bond

Contact via Slack

TBD

Evaluation#

The grading scheme for this course is:

Item

Weight

Frequency

Learning Logs

10%

Weekly on Fridays

Labs

50%

Weekly on Wednesdays

Quiz 1

20%

Once on September 27th

Quiz 2

20%

Once on October 6th

Attention

All (non-quiz) deadlines in this course have an automatic 48 hour grace period after the due dates listed above. Any submissions submitted past the grace period will not be graded.

Note

Important: The maximum mark you can get on each item is 100%. Any available bonus marks are not transferrable to other assignments.

Passing requirements#

Yes. To pass this course, you must:

  • Achieve an average of 60% in the quizzes.

  • Achieve an average of at least 60% across all labs

If students do not satisfy the appropriate requirements, the student will be assigned the lower of their earned course grade or, a maximum overall grade of 45% in the course.

Please refer to the UBCO Calendar for additional details for program-wide passing requirements.

In particular:

60% is the minimum passing grade for master’s students; however, only 6 course credits with grades from 60-67% may be counted toward a master’s program. For all other courses, students must obtain a minimum of 68%.

Schedule#

Schedule#

Class #

Date

Course Topics

1

Wednesday September 8

Python Introduction and Data Types

2

Monday September 13

Python Conditions and Loops

3

Wednesday September 15

Python Lists, Tuples, Dictionaries, and Functions

4

Monday September 20

Python File I/O and Exceptions, Modules and Objects

5

Wednesday September 22

Continuing last lecture

6

Monday September 27

Introduction to R and the tidyverse [Quiz 1 done remotely]

7

Wednesday September 29

R Data Structures: Vectors, Lists, Matrices, and Data Frames

8

Monday October 4

Extra Office Hours

9

Wednesday October 6

Extra Office Hours [Quiz 2 done remotely]

Note

Data 531 Labs are on Wednesdays. To help students in other time zones, we use two time slots for the labs: 8:30 am - 9:30 am and 13:30 pm - 15:30 pm. In later blocks as more of us transition to face-to-face, the morning slot may be deprecated. TAs will be using Zoom for the labs.

Learning Outcomes#

  1. Python Introduction and Data Types

    • understand Python 2 and Python 3 have some syntax differences

    • follow Python syntax rules including indentation, variable naming, and comments

    • define and compare: algorithm, language, program, programming

    • list and explain when to use different Python data types

    • perform math expressions and understand operator precedence

    • create and execute a Python program in jupyter notebook

    • perform printing to console for output

    • use string and string functions including string indexing, subsetting, and concatenation

    • apply formatting for string output

    • use date and time functions

    • proficient in reading input from console and output results to console

  2. Python Conditions and Loops

    • create comparisons and use them for decisions with if

    • combine conditions with and, or, not

    • make decisions using if/elif/else syntax

    • perform repetition using loop constructs for and while

  3. Python Lists, Tuples, Dictionaries, and Functions

    • create and use lists and list functions

    • understand advance syntax for list comprehensions, list slicing

    • create and use tuples and tuple functions

    • create and use dictionaries

    • explain the difference between tuples, lists, and dictionaries

    • create and use Python functions with parameters and return a value from a function

    • explain the benefit of using functions for program decomposition

    • use built-in functions and functions in the math library including generating random numbers

    • exposure to passing functions and lambda functions

  4. Python File I/O and Exceptions

    • open, read, write, and close text files

    • process CSV files including using the csv module

    • understand and define web terminology including IPv4/IPv6 address, domain, domain name, URL

    • read URLs using urllib.request

    • explain the purpose of exceptions and exception handling

    • use try-except statement to handle exceptions and understand how each of try, except, else, finally blocks are used

  5. Python Modules and Objects

    • use object-oriented terminology: class, object, method, parameter, instance variable, inheritance, superclass, subclass

    • create classes with methods

    • instantiate objects ; call methods and access object properties

    • know that Python supports inheritance when defining classes

    • import Python modules and packages

    • use Biopython module to retrieve NCBI data and perform BLAST

    • build charts using matplotlib

    • perform linear regression and k-means clustering using SciPy

    • connect to and query the MySQL database using Python

    • write simple Map-Reduce programs

    • apply object methods using the dot syntax

  6. Introduction to R and Review of Basic Statistics

    • understand purpose and usefulness of R and difference with Python

    • define different types of data: qualitative, quantitative

    • describe data use numerical summaries (measure of centre/spread)

    • define and calculate: mean, median, variance, standard deviation, range

    • define: quantile, quartile, interquartile range, five number summary

    • install and use RStudio

    • set and get the working directory

    • list the different types of data structures in the R language

    • write small programs/commands in R that may use variables, conditions, loops, and functions

    • use R to determine the type and structure of an object

  7. R Data Structures: Vectors, Lists, Matrices, and Data Frames

    • create, index, and subset vectors, lists, and matrices

    • generate vectors of random data

    • read in data sets from files

    • use head and tail to explore a data set

    • use data frames/factors for data analysis

    • explain what factors are and why they are useful

    • create graphs/visualizations: frequency table, bar chart, histogram, boxplot using base R and ggplot2

  8. R Hypothesis Testing and Linear Regression [Optional]

    • explain the purpose of confidence intervals

    • perform hypothesis testing using R

    • understand assumptions inherent in a t-test

    • compute linear models using R

The best way to get personalized help in this course is to attend the labs and student hours we have scheduled for this course. They are all done on Zoom and this is time the TAs have set aside to help you! You may also use this time to talk to us about anything else related to data science as well. We would love to hear about you, what your interests are, and if you need any career advice.

A few other notes:

  • We will be using Slack and Canvas for Announcements in this course.

  • For all course-related questions you can reach out to the teaching team including instructors and TAs via Slack.

  • You are encouraged to post questions publicly whenever possible so others can benefit. For private and personal issues, you can send private messages on Slack.

  • Any student may visit the student hour for any member of the teaching team (TA or instructor)! In other words, you can go to the student hour of ANY TA, not just the one whose lab/tutorial you are registered in.

Unsyllabus changes#

In this section, I will outline any changes that have been made to the unsyllabus as we go through the course. We will do our best to follow the plan outlined in this unsyllabus, but in case things go south, I will need to make adjustments to the contents and the schedule.

Any major changes to the syllabus (this page) will be documented here, as well as the date the change was made.

Change Date

Summary

Rationale

N/A

N/A

N/A

Teaching Philosophy#

For a detailed description of my teaching philosophy and values (including a list of references and citations), you can read it here. Here are the key principles I intend to apply in this class:

  1. Student learning is vastly improved through active learning

  2. Learning technologies must be leveraged to scale instructor effort across multiple classes.

  3. Inter-disciplinarity is the future of education.

  4. Effective teaching is inclusive teaching.

How will this course be taught ?#

This course will be taught as a Blended Learning classroom where some elements of a flipped classroom will be mixed with a more traditional coding classroom with live demos, clicker questions, and worksheets. Briefly, this requires students to watch videos and engage with the assigned reading prior to the classroom meeting (knowledge transfer). During the class meeting, the instructor guides students through clicker questions, worksheet problems, and other activities to help the students make sense of the material (sense-making). See Fig. 1 for a mental model of how learning works :cite:`Ambrose2010`.

../_images/masterymodel1.png

Fig. 1 To develop mastery in a concept, students must first acquire the necessary skills, then practice integrating them, and finally know when to apply what they have learned. This figure was adapted from Figure 4.1 of the book “How Learning Works”. The terms “knowledge transfer” and “sense-making” applied in this context is generally attributed to Dr. Eric Mazur.#

What does this mean in practical terms?#

Fig. 2 shows a handy table to help guide you and organize your learning in this course:

../_images/masterymodel2.png

Fig. 2 This table describes how I think each course activity should be classified between knowledge transfer and sense-making.#

Academic Integrity#

How do I go through this course with integrity?#

I want to be proud of your work in this course, and I want YOU to be proud of yourself as well! That cannot happen if you make unethical decisions, including (but not limited) to cheating or plagiarism. According to the scientific literature, the most common reasons students cheat are:

  • Fear of failure and life consequences

  • Peer pressure, including an inability to say no to help others cheat

  • Perceived societal acceptance of cheating (Lance Armstrong, Barry Bonds, Enron, Wall Street & the The Big Short)

  • Desire for success without the time/desire to put in the work needed

  • Strict deadlines and due-dates

  • Requirement from instructors to memorize facts, figures, equations, etc…

  • High-stakes exams with no recompense for “having a bad day”

  • Peers cheating with no consequences or penalties

  • Unclear expectations on what constitutes academic dishonesty

  • Inadequate support from instructor and teaching team

Though I sympathize with students and the stresses of your busy lives - in my opinion, there is no good reason to cheat. I have tried extremely hard to make this course focused on learning rather than grading, and where grading is needed, to have policies that are as student-friendly as possible. In particular, I hope (and expect) that the following features of the course should eliminate your temptation to cheat or plagiarize:

  • 48 hour grace-period on all due dates and deadlines.

  • Long testing window so you can start the tests whenever you’re comfortable.

  • Weekly learning logs, homework and reading reflections to make you think about your learning (metacognition).

  • Each test has a “bonus test” available one week later; for each test, we will take the better score of the pair.

  • No high-stakes exams (the single largest assessment item is the final exam).

  • All course assessments are completely open book, open notes, and open web (except for cheating websites like Chegg, CourseHero, Slader, Bartleby, etc…)

  • Plenty of TA and instructor student hours and several outside of normal business hours.

  • Class website that outlines exactly what you should do when to help you manage your time.

  • Tonnes of supplemental materials including other instructional videos in case you want a different perspective.

  • Weekly prompt to accept the integrity pledge to keep you accountable.

  • A true willingness from the instructor (me) to help you learn and succeed in this course!

With these features, and several other little things, I sincerely hope that you will consider completing this course with maximum integrity so that you never have to feel guilty, ashamed, or disappointed in yourself and your actions!

A more detailed description of academic integrity, including the University’s policies and procedures, may be found in the Academic Calendar.

What is considered academic dishonesty in this course?#

To make it even easier for you to decide what isn’t allowed, below is a list of things that I definitely consider to be academic dishonesty:

  • Asking others for their work in the course (whether question by question, or all at once)

  • Sending others your work in the course

  • Doing tests collaboratively (tests must be done by yourself and alone)

  • Sending others your test questions and/or answers

  • Sharing any course material onto Chegg, Course Hero, Slader, or other similar sites

  • Searching for solutions to course material on Chegg, Course Hero, Slader, or other similar sites

  • Blindly googling the question in hopes of finding someone who had a similar question and then copying their answer

    • Note, googling to find resources to understand specific concepts or general ideas is highly encouraged!

  • Having a tutor/friend/nemesis complete and submit your work for you

  • Copying and pasting code, equations, text explanations, prose, etc… without attribution

  • Manipulating the learning platforms we use to reverse engineer the randomization algorithms, hacking the timer functionality, or other similar technical malfeasance.

Course Accommodations#

What if I miss labs, tests, or the exam due to an illness, health, or other personal situations?#

Normally, most deadlines in this course have a generous grace period. If you require an extension beyond the grace period, please contact the instructor on Slack (ideally before the deadline passes) to discuss your options.

Students who, because of unforeseen events, are absent during the term and are unable to complete tests or other graded work, should normally discuss with their instructors how they can make up for missed work. If ill health is an issue, students are encouraged to seek attention from a health professional. Campus Health and Counselling will normally provide documentation only to students who have been seen previously at these offices for treatment or counselling specific to conditions associated with their academic difficulties.

Tip

If you miss a course component due to an illness, health, or other personal situation, please reach out to me as soon as you are comfortable, and I’ll work with you to get you back on track.

What if I have dependents that rely on me for care and unpredictable emergencies may arise?#

Let’s talk, send me a private message and we can discuss it. I do not necessarily need to know all the personal details, just a high-level summary of your situation and what you think an ideal solution would be.

I’m sure we will come to some agreement, generally the earlier you let me know of any special circumstances or accommodation, the more I’ll be able to do for you!

What if I have to miss a deadline because of a wedding, birthday, funeral, religious holiday, or personal event ?#

No problem! There’s not even any need to tell me, or ask for permission to miss deadlines. The course is designed to give you maximum flexibility:

  • Every deadline has a 48 hour grace period that is automatically applied.

  • There is no late penalty if you use the grace period

  • You can use the grace period an unlimited amount of time in the course (though if it happens every week and for every assignment, I might check in with you and gently encourage you not to leave things to the last minute)

If you miss a deadline by more than the grace period, the general course policy is that you will not be able to get full credit for it, and in many cases, may even get a 0 for it. In the cases of Tests, it is not possible to get partial credit, or complete it at times other than within the scheduled windows. In some cases, I reserve the right to grant an extension or make alternate accommodations as needed.

What should I do if I need accommodations to be successful in this course?#

Accommodations are intended to remove barriers experienced by individuals with disabilities. As a matter of principle, UBC is committed to promoting human rights, equity and diversity, and it also has a legal duty under the BC Human Rights Code to make its goods and services available in a manner that does not discriminate. Policy 73 (Accommodation for Students with Disabilities) sets out principles and processes governing the accommodation of students with disabilities.

All accommodations for this course are handled through the Disability Resource Centre and I encourage you to contact them to book an appointment.

Compassion#

As I’m sure you’re aware, there is (still) a global pandemic happening right now and we could all use some extra compassion and humanity. If you’re going through something that is affecting you (course or otherwise), you are always welcome to come and talk to me about it. If I am not able to help you myself, then I can probably direct you to the right person or resource. If you need extra help, or extra time to deal with something you’re going through, just ask. You will never owe me an explanation about your physical health, mental health, or those of your family members, friends, etc… I will believe you, and I will trust you. I will not judge you, nor think any less of you. I will do everything in my power to work out something that is both reasonable and fair. This, I promise!

Acknowledgements#

The syllabus was constructed and adapted from many other templates and examples. Below is the list of resources I have used to put this syllabus together:

References#