CSE 250 Syllabus

Why take Data Science Programming?

Because data science is awesome.

Another excellent reason to take this class is that our world is shaped by data. The music we listen to, the products we buy, the public policies that govern our community, the route we drive to work - all of these are influenced by data!

Knowing how to control data and extract insights gives you power, the ability to “act…and not be acted upon”1. You can use this power to shape the world the way you want to. As such I believe this class directly fulfills the University Mission to “develop disciples of Jesus Christ who are leaders in their homes, the Church, and their communities."2 I hope you will use your power to share light, teach truth, and serve as disciple-leaders3.

The specific skills you will learn in this course are summarized for you in the course outcomes.

How does this class work?

Two-week Projects

This course is built around two-week projects. (Except Project 0, which is one week.) Each project focuses on a different topic and has a list of questions designed to increase your data science skills and understanding. The entire two weeks will be spent answering the project questions and then compiling your answers into a report.

During the first week of a new project, you are asked to prepare for class by reading the project instructions and taking a short “Methods Quiz” to check your understanding. You should also read most of the assigned material. In this course our reading material comes from our online textbook and other online (and free!) resources.

At the end of the first week you submit a “Halfway Checkpoint”, which is a short video showing the progress you’ve made on the project.

The second week of the project asks you to finish reading the assigned materials, and then to search for an additional project resource (for example, a helpful YouTube video). These resources will be shared “potluck” style so you can learn from your classmates.

At the end of the two weeks you submit a PDF project report that contains a summary of your work, the answers to the project questions, and the Python code you wrote to find the answers.

Late Policies

Methods Checkpoints open when the project starts and are due before the 2nd day of class for that project. They have unlimited attempts and remain open until the end of the semester. Note that you must score 100% for the quiz to count towards your grade. (See grading section below.)

Halfway Checkpoints open when the project starts and are due at the end of the first week. They lock at midnight before the 3rd day of class for that project. Halfway checkpoints cannot be submitted after they are locked.

Project Reports are due at the end of the two weeks. After they are graded you are allowed one additional submission to improve your score. The deadline for the second submission varies by project and will be announced in class.

End of Semester Assignments

There are a few assignments due at the end of the semester that do not follow the two-week pattern. See the “Grading Elements” section below for more details on the Data Science Community, Review and Request Letter, and Coding Challenge assignments.

What are the expectations in this class?

Prerequisites

The prerequisite for this course is an introductory programming course in Python (CSE 110). If you are not comfortable programming, consider taking CSE 111 before or during the same semester you take this course. I assume you know how to execute basic commands in the Terminal (Mac) or Command Prompt (Windows).

Preparation and Participation

At BYU-Idaho students are active learners. Preparing for class, participating in the lessons, and communicating with your classmates are acts of faith - especially when you feel confused and lost! These acts invite the Spirit, who can magnify your efforts and fill your mind with light and truth. Please take advantage of these blessings.

You are expected to work on projects consistently over the two weeks. This implies you will come to class having read the project instructions and reading assignments. Preparing in this way will allow you to participate in our class discussions. “Participate” does not mean you always share the right answer. In fact, I expect you to share a lot of wrong answers. Having the courage to be wrong and say “I don’t know, but I tried this…” will accelerate your learning and be a great blessing to our class.

Personal accountability is a crucial element of this course. I do not take attendance, nor do I keep track of your reading assignments. If you struggle with either one of these I invite you to visit the Academic Support Center.

Learning From Others

Another important element of this course is working together with your classmates. While your project answers and code should be your own work, it is appropriate and encouraged to collaborate on learning new methods, generating ideas, and solving error messages. Our class Slack channel is a great tool for this and should be used often.

Sharing code that generates the exact answer is cheating, not collaborating. Learn to notice the difference between someone sharing guidance and someone sharing an answer. If you feel like your learning is in jeopardy, it is ok to say “Don’t tell me the answer! I want to try it on my own.”

What about grading?

Specifications Grading

Grading is a nasty side effect of mass learning and academia. We are in a class at a university and will have to manage this side effect. However, we do not have to let it control us! Learning and thinking should motivate each activity.

Faculty members at BYU-Idaho have worked hard to identify the specifications needed for a data programmer in Python. My goal is to align your grade with the skill specification you have mastered. In other words, the grade you want will determine how much work you will do.

In a specifications-grading system, all tasks are evaluated on a high-standards pass/fail basis using detailed checklists of task requirements4. This class will use a similar system. You earn your letter grade by achieving a set of tasks (see the grading scale below). This system provides various choices and is closer to how learning and work occur in the real world. It will be easy for me to tell if work is complete, done in good faith, and consistent with the requirements.

Grading Scale and Elements

The grading scale describes the amount of work you must put into the grading elements to achieve the your desired grade. The grading scale only lists requirements for A, B, C, and D. You can request half-step adjustments if you fall slightly short or over on some elements.

You will need to provide a detailed description of your completed grading elements in your Review and Request Letter (due at the end of the semester) to support your grade request. For example, if a student was in the B range they might write the following:

“I got three fives, one four, and two threes for 29 points on the projects. I met the checkpoint requirements with 4 halfway checkpoints and 4 full-mark methods checkpoints. I regularly attended data science society. I believe my coding challenge will be above a 3. I request a B+."


Leader (A)

ElementRequirementDetails
Projects34 Points7 projects, 5 points each
Methods Checkpoints6 completedCompleted at 100%, unlimited attempts
Halfway Checkpoints5 completedCompleted at 100%
DS Community2 completed
Review and Request LetterSubmission
Coding ChallengeAt least a 3Score is out of 4

See the competency descriptions in the next section. You can request half-step adjustments if you fall slightly short or over on some elements.

Supporter (B)

ElementRequirementDetails
Projects29 Points7 projects, 5 points each
Methods Checkpoints5 completedCompleted at 100%, unlimited attempts
Halfway Checkpoints3 completedCompleted at 100%
DS Community2 completed
Review and Request LetterSubmission
Coding ChallengeAt least a 3Score is out of 4

See the competency descriptions in the next section. You can request half-step adjustments if you fall slightly short or over on some elements.

Listener (C)

ElementRequirementDetails
Projects24 Points7 projects, 5 points each
Methods Checkpoints3 completedCompleted at 100%, unlimited attempts
Halfway Checkpoints3 completedCompleted at 100%
DS Community1 completed
Review and Request LetterSubmission
Coding ChallengeAt least a 2Score is out of 4

See the competency descriptions in the next section. You can request half-step adjustments if you fall slightly short or over on some elements.

Asleep (D)

ElementRequirementDetails
Projects14 Points7 projects, 5 points each
Methods Checkpoints2 completedCompleted at 100%, unlimited attempts
Halgway Checkpoints1 completedCompleted at 100%
DS CommunityNone
Review and Request LetterNone
Coding ChallengeNoneScore is out of 4

See the element descriptions in the next section. You can request half-step adjustments if you fall slightly short or over on some elements.

Projects (Grand Questions)

Each of the seven projects is worth 5 points. You get one additional submission after the due date.

Grading Details
  • 1 point: Submission
  • 3 points: Submission of a good faith attempt with a statement of work quality.
  • 4 points: High-quality work that addresses each of the Grand Questions and a statement of work quality.
  • 5 points: High-quality work that addresses each of the Grand Questions and a statement of work quality. Addressed reviewer issues and completion of resubmission if needed.

Methods Checkpoints

These quizzes are in Canvas and they open when the project starts. They have unlimited attempts and remain open until the end of the semester.

Examples
  • Fact-Finding Questions (Calculate descriptive summaries): Fact-finding questions help you with calculations that build into the Grand Questions of the project. These questions have clearly defined answers using Python calculations. You should expect 2-3 problems.
  1. Example: Using the top 10 airports in size, what is the average size?
  2. Example: What proportion of flights are delayed at the largest airport?
  • How the code works questions (Explaining the tools): This part could have direct answer questions or open-ended questions.
  1. Example (direct): What is the recommended function for arranging your data by a variable? What are the outputs after using <FUNCTION>?
  2. Example (open): Your client has shown some confusion about NumPy’s ‘nan’ handling in Python. Help them understand by answering the question, ‘How is missing data handled in Pandas?’

Halfway Checkpoints (Video Submission)

The halfway checkpoints track your progress on the project questions. They open the first day of the project and close at midnight the day before the 3rd day of class. For each halfway checkpoint you record a short video (<1 minute) of your code. You must answer the following questions in your video for full credit:

  1. How long have you worked on this code?
  2. What is your code designed to do?
  3. What are, if any, the issues you’re facing?
  4. What grand questions have you checked off?

Data Science Community

To earn credit for the DS Community element, complete these two tasks:

  1. Attend data science society at least once during the semester.
  2. Register to get a regular email on topics related to data science.

Possible third option: If you think of another way to engage with the data science community, reach out to me and see if it can count for class!

BYU-I Data Science Society

The society meets on Wednesdays at 6:00 pm in the STC. It starts the second Wednesday of the semester. Watch the #general channel in Slack for announcements about society.

Register for a newsletter

Here are a few examples.

Review and Request Letter (Finishing the Semester)

Submit a “review and request” letter that includes what you have learned from this class, the next data science course you plan on taking, and the final grade that you are requesting based on the work you have submitted.

Coding Challenge

We will have an in-class coding challenge on the last day of class. It will cover the general techniques that we have been practicing throughout the course.

I expect to have a few practice challenges throughout the semester. I will score the coding challenge on a four-point scale.

  • 1 point: At least you tried.
  • 2 points: You have learned some items from the course, but your work in the coding challenge is deficient.
  • 3 points: Your submission uses proper coding techniques and addresses the objective.
  • 4 points: Exceptional work. Your code can be used as a solution to share with others.

University Policies

Please visit this link to view the university policies.


  1. 2 Nephi 2:26 ↩︎

  2. BYU-Idaho Mission Statement ↩︎

  3. What it takes to be a disciple-leader, according to Elder Kim B. Clark (See also Realizing the Mission of BYU-Idaho, Developing Disciple Leaders) ↩︎

  4. Yes, Virginia, There’s a Better Way to Grade by Linda B. Nilson is a good introduction to specs grading. ↩︎