Data Sciece for Decision Makers
A man's accomplishments in life are the cumulative effect of his attention to detail.
John Foster Dulles
This is a python-based, mathematics course taught at the United States Naval Academy, Annapolis, MD.
Spring 2023 Course Policy Statement
Section 3401 TR9 (0955 - 1110), CH190
Section 5601 TR10 (1330 - 1445), CH190
Since we meet on Tuesdays and Thursdays in CH190, we will cover 1.5 of MWF's lessons each day so that we are on par with the other SM208 sections.
Online Textbook and Assignment Link.
Online Textbook: Computational and Inferential Thinking: The Foundations of Data Science
Course Website/Assignment Link: SM208 Spring 2023
Installing Python: Python Installation Instructions
Reference Sheet: Basic Lines of Code
Random Name Generator: SM208 3401
Random Name Generator: SM208 5601
Course Content.
We'll be learning how statistics can be used to support decision making. This is in line with recommendations made by the 2016 GAISE College Report, endorsed by the American Statistical Association. It is also a direct response to remarks by our Superintendent, Vice Admiral Sean Buck, who encouraged us to develop a data science curriculum to make midshipmen more effective officers. The material in this course is based off pioneering work in the Data8 program at U.C. Berkeley and our course number pays homage to U.C. Berkeley's program. We've modified their curriculum to adapt to the needs of the Naval Academy, the Navy and the Marine Corps. Our curriculum development efforts have been supported by two generous grants from the Office of Naval Research.
Data science is a modern approach to statistics that blends computation with statistical theory. We'll use Python, the industry-leading programming language for data science. Despite its broad capabilities, our course will focus on using Python for data manipulation. visualization, and statistical computation. Students wishing further instruction in computer programming are encouraged to take SI286: Programming for Everyone. Course content includes data organization and manipulation, data visualization with an emphasis on briefing senior leadership, probabilities and Bayes' Rule for updating probabilities in light of new information, hypothesis testing, confidence intervals via bootstrapping, applications of the Central Limit Theorem and an introduction to distributions, regression and inference for regression, predictive modeling and an introduction to machine learning, an overview of ethics in machine learning, and classes devoted to critical thinking in the context of decision making with data science. This course is mainly taken by midshipmen in with majors in the School of Humanities and Social Science and many examples have been chosen from these areas, as well as in applications of interest to the Navy and the Marine Corps.
Online Textbook.
The main text is Computational and Inferential Thinking, The Foundations of Data Science by Ani Adhikari and John DeNero with contributions by David Wagner and Henry Milner. It is available for free in an interactive online version at: https://www.inferentialthinking.com/chapters/intro.html. We have supplemented the text with readings created specifically for midshipmen. As well, bring your computer to class each day.
Section Leaders and Assistant Section Leaders.
Section 3401: TR9 (0955-1110), CH190
Section Leader: MIDN Grace Hueber
Assistant Section Leader: MIDN Sebastian Scherry
Assistant Section Leader: MIDN Jenna Hernandez
Section 5601: TR9 (1330-1445), CH190
Section Leader: MIDN Connor Melinosky
Assistant Section Leader: MIDN Hannah Han Kim
Assistant Section Leader: MIDN Ryan Catka
Section Leaders and Assistant Section Leaders: please take daily attendance (the link has been emailed to you). Type:
* = present
A = absent
T (min) = tardy (# of minutes late)
D (min) = departed early (# of minutes)
Midshipmen: if you are going to be absent, you must email your Section Leader, the two Assistant Section Leaders, and myself. The Section Leader and the two Assistant Section Leaders will keep track of this via our attendance sheet.
EI, MGSP, Math Lab, Academic Center, and Midshipmen Study Groups.
Extra Instruction (Office Hours) and MGSP.
Extra Instruction (in Professor Im's office CH342):
Walk-in EI: Tuesdays 1110 - 1330
Walk-in EI: Thursdays 1110 - 1330
It's possible that I may have a meeting on some Tuesdays or Thursdays, so whenever possible, please let me know if you plan on stopping by (feel free to leave a note on my door also if you stopped by). But even if I have a meeting, it should not last more than 1 hour.
NOTE: if I'm not in my office during the walk-in EI hours, I may still be in our classroom CH190 helping the midshipmen (since there appear to be more and more midshipmen who remain in the classroom after class and continue to work on their python codes).
If you would like to meet with me outside of these times, email me to schedule an appointment.
MGSP Leaders in CH131:
Sundays 2000 - 2100: MIDN Soleil Xie
Mondays 2100 - 2200: MIDN Liam McInerney
Thursdays 2100 - 2200: MIDN Ryan Garber
Math Lab (in CH130, walk-ins are allowed):
Mondays through Fridays, 1st through 6th period (0755-1520).
Academic Center (morning and evening free tutoring):
Contact them to make arrangements.
Form Study Groups with Other Midshipmen:
Great way to reinforce coding and mathematics through your friends, especially if you and your friends are open to the possibility of a small group start-up, work for Goldman Sachs, NSA or Pentagon!
Here is the Math Lab Schedule for Spring 2023. Boxed are faculty members who can definitely help with python troubleshooting. I am not certain about the other faculty members but it doesn't hurt to go and ask.
Course Goals.
There are four goals for this course, in brief:
Call on standard statistical tools. [This includes conducting hypothesis tests, constructing confidence intervals, fitting predictive models such as linear regression or k-nearest neighbors.]
Identify appropriate methods. [This includes both statistical and visualization methods.]
Properly interpret statistical results. [In particular, interpret p-values, z-scores, t-scores, and confidence intervals.]
Critically assess statistical analysis. [Using the vocabulary of the Paul-Elder model for critical thinking.]
These goals address the technical preparation of our midshipmen. As well, we’ll get considerable experience assessing claims using data, which contributes to our ability to think critically. These are both important attributes and capabilities of our Naval Academy graduates.
Reading Quizzes.
Make sure to log in via your usna.edu email address, or else, it will record some other email address which we may not be able to identify who it belongs to, so you will not receive credit on it. You have infinitely-many tries per problem per reading quiz so if you are not happy with your first attempt, try again since each subsequent attempt will write over your previous grade. Submit your reading quiz grade once you are satisfied with your grade.
All resources are allowed on Quizzes and Exams, except help from other midshipmen.
Resources Allowed on Quizzes and Exams. All resources (notes, online book, all python files, internet) on quizzes and exams are allowed except other students.
Labs (python files). You may work with one other person, but each person must type their own alpha and submit their lab to Blackboard. If you worked with another midshipman on a lab, I will pass around a paper and you must write your name and your partner's name on the paper. You must have a different partner for each lab assignment, or else, points will be docked from the assignment.
Lab. Working with a Partner Spreadsheet
Homework. You may get assistance from other midshipmen but I will not be tracking their names (so there is no need to type their names on your python file or give their names to me).
Uploading Homework, Labs, Quizzes, and Exams. You must upload them to Blackboard and then hit submit before their respective due date.
Assignment Due Dates.
Reading Quiz Due Dates. They are due before midnight (by 2359) of the due date. See below for the due dates.
Quiz Due Dates. All in-class quizzes must be submitted within the allotted timeframe, before the end of class.
Lab Due Dates. You have 7 consecutive days (1 week) to work on the lab. That is, if the lab is assigned on a Thursday, then it is due by the following Thursday before midnight (by 2359).
Homework Due Dates. You have 7 consecutive days (1 week) to work on the homework assignment. That is, if homework is assigned on a Thursday, then it is due by the following Thursday before midnight (by 2359).
Group Work and Plagiarism.
The military ethic focuses on both individual responsibility and teamwork. In general, you are encouraged to work together outside of class. Looking at someone else’s code is fine, but then you should KEY THE COMMANDS IN ON YOUR OWN and not copy (and paste) directly.
Typing in your ALPHA on ALL submitted files is equivalent to writing your name on all of your submitted assignments.
If your own alpha is NOT on an assignment that you submitted, you will automatically receive 0 on that assignment. There are no excuses why you failed to type in your own alpha.
Secondly, make sure that you spelled your alpha correctly. If you alpha has 5 numbers or 7 numbers, then it is incorrect. If you "accidentally" type in a friend's alpha, then it is still incorrect. So please double-check your alpha before you submit an assignment to me because it takes a very long time to track down the person with the wrong alpha.
On every python file, type in ONLY your alpha. When assigned work is not solely your own or if you received help on a lab assignment, you must indicate this in a comment in your file though there is no penalty for doing so (insert a new line in python and add your friend's name) I will pass around a paper and you must write your name and your partner's name on the paper. You must have a different partner for each lab assignment, or else, points will be docked from the assignment. As for homework, you may get assistance from other midshipmen but I will not be tracking their names.
In addition to recourse through the honor system, I reserve the option of assigning zero credit for any assignment or evaluation in which I suspect plagiarism. Similarly, cheating on a test or the final exam will result in a failing grade for the course.
Late Work.
Though most class information is located on our course website, grades will be published at the instructor's discretion.
HWs and Labs. Late work without a previously agreed-upon extension will be docked 25% credit and will not be graded if turned more than 7 days past the original due date (this includes weekends and Federal holidays).
Reading Quizzes. Any late reading quizzes will be docked 25% credit.
Quizzes and Exams. If you fail to submit in-class quizzes and exams by the end of class (before the time that they are due), you will receive 0 on these assignments.
Being absent on a quiz day. If you're absent on a quiz day, you will be excused from that quiz. But that quiz will still be emailed to you so when you have time, work through that quiz at your own time. You can still drop the lowest quiz grade at the end of this semester.
We will cover 3 lessons every 2 days. The first two reading quizzes are due on the first day of the first lecture, and the third reading quiz is due on the second day of the second lecture.
Six and 12 week grades will be computed using the above proportions, adjusted because of the absence of some items. I understand that you sometimes need to miss class for movement orders. You will need to make up any graded work that you missed, but note that we drop some grades at the end of the course.
I reserve the right to fail anyone with F level performance in the last weeks of the semester, and to assign an A to whoever shows significant improvement as the semester concludes (and aces the final).
Striving for Excellence.
I require everyone (including myself) to strive for excellence in our class. At a minimum this includes: coming to class prepared (having done the reading for the day’s class, the homework from the last class and coming to class with your computer), asking and answering questions in class and taking part in group work. Moreover, on quizzes, tests, and (especially) on the final exam, I need to see both comprehensive preparation and full and sustained effort.
Break down of the Grades and Extra Credit.
20% Homework (11, dropping the lowest homework at the end of the course)
10% Labs (11, dropping the lowest lab at the end of the course)
Khost Call final project counts as Lab 09 and Lab 10.
05% Reading Quizzes (31, dropping the lowest reading quiz at the end of the course)
10% Quizzes (5, dropping the lowest quiz at the end of the course)
30% Tests (2)
25% Final Exam (1)
BONUS: As long as you upload your python files to Blackboard before the due date, you will receive several bonus points (see the top of your python file to see how many bonus points you will receive).
How to Check Your Grades.
While you will upload all (python) files to Blackboard, you can view your grades through your individualized Google Spreadsheet (the link to this spreadsheet has been emailed to you). After I grade each assignment, your grades will automatically populate, but I will aim to let you know whenever an assignment has been graded.
Grading Scale.
A (90.0 ≤ x )
A- (87.0 ≤ x)
B+ (83.0 ≤ x < 87.0)
B (80.0 ≤ x < 83.0)
B- (77.0 ≤ x < 80.0)
C+ (73.0 ≤ x < 77.0)
C (70.0 ≤ x < 73.0)
C- (67.0 ≤ x < 70.0)
D+ (63.0 ≤ x < 67.0)
D (60.0 ≤ x < 63.0)
F (x < 60.0)
Student Responsibilities.
If you don’t understand a concept, it is your responsibility to seek help as soon as possible and be prepared for all quizzes and tests.
If you believe I made a mistake during lecture, immediately speak up, as others students may also be confused by my error. Letting me know after class won’t help the others.
Ensure your cell phone is on the AIRPLANE MODE. If I hear or see a cellphone I will collect it and will give it to your CO or SEL, you can collect it from them.
If you fall asleep in class be respectful and STAND UP. I will kick you out if you keep falling asleep.
No food allowed in class. You may drink from a re-sealable container.
Bring your laptop with charger to lecture. If we knew in advance about the technical failure of your laptop but you continue to fail to bring your charger to lecture, you will receive 0 on any of the in-class assignments for that day.
Professionalism.
Come to class in the proper uniform and be on time. For males, that means you must be shaven. If you arrive without a shave, I will send you back to shave and then mark you tardy if you are not on time.
If you know you will be absent, tardy, or leaving early, let the Section Leader, the two Assistant Section Leaders, and me know as soon as possible. It is far better to work in-advance of the class than to try to catch up on what you missed. If you miss part of class for any reason, it is your responsibility to get the notes from your classmates and catch-up.
You do not need to ask permission to leave or enter the classroom; quietly leave or enter.
RESPECT in the classroom is a priority. Do NOT talk when someone else is speaking in the room. Disrespect towards myself or your fellow classmates will not be tolerated.
Flexibility.
We all need to be a little bit flexible. Indeed, if necessary, this course policy document may change during the course. If you need an extension on an assignment, I’m generally willing to give one if you ask well in-advance of the deadline or if you can show me significant partial progress towards completion of the assignment. I’ll also ask you to be flexible: we may need to reschedule topics depending on how quickly (or slowly) we move through the syllabus. I’ll give you advance notice if due dates need to be adjusted.
Disclaimer. Instructors reserve the right to modify this course policy. You will be advised in advance of any policy change.
Remark. I look forward to having you in my class!
Past Lessons.
Lesson 1 (Thurs 12 Jan):
RQ00 due today, before 2400.
Short introductions (name, hometown, major) and an ice breaker
Day 1: Course introduction. Anaconda (Jupyter and Google Drive) troubleshooting
Go through "Class Notes Day 01.ipynb"
Lesson 2 (Tues 17 Jan):
RQ01 due today, before 2400.
RQ02 due today, before 2400.
Day 2: Jupyter notebooks. Percentiles, Lab 00 (we'll do Lab 00 together as a class so that you'll get a better feel for how to use python)
As we go through Lab 00 together during class, you'll see a python line to install the datascience package. This contains specialized commands that make it easier to learn data science tasks in python.
This only needs to be done once on each machine. The following cell may produce a lot of text output. Don't worry about that. You may also get a message in pink saying that you need to "update pip". Don't do that now, but do tell me if you see other error messages. In summary, you do not need to copy the line below and add to your ipynb; this line of code is already in Lab 00. We just need to run it once.
# type below and then hit SHIFT-ENTER
! pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org datascience
Day 3: Univariate Data: tables, arrays, histograms, HW00 assigned.
If we do not complete this lesson, please go through this on your own, with other midshipmen, at Math Lab, MGSP, or Ac Center. Bring questions to class.
Lesson 3 (Thurs 19 Jan):
RQ03 due today, before 2400.
RQ04 due today, before 2400.
I'll briefly review the important codes from Day 2 and Day 3:
Day 2: Univariate Data - Tables and Arrays.ipynb
Day 3: Day 03 Lecture Notes - Student Version.ipynb (go through these last 3 lines on your own and see me if you need help)
nba.hist('Age in 2013',density=False)
nba.column('Age in 2013').min()
nba.where('Age in 2013',are.equal_to(15))
Day 3: Univariate Data - Measures of Centrality and Spread.ipynb (go through this on your own; this goes with RQ03. See me, MGSP leaders, Math Lab, Ac Center, or other midshipmen if you need help)
Day 4: Univariate Data Lab
Day 4: Univariate Data - Categorical Variables and Bar Graphs.ipynb (go through this on your own prior to taking RQ04; see me, MGSP leaders, Math Lab, Ac Center, or other midshipmen if you need help)
Lesson 4 (Tues 24 Jan):
RQ05 due today, before 2400.
Since we are behind other sections, I will go through Day 5 lecture notes first and then for the rest of the class, I will let you work with the same partner for Lab 01 and Lab 02. Remember that only two people can work together as a group.
Day 4: Univariate Data Lab, Lab 01 (I'll give you some time during class to work on this with a partner)
If you have a partner, write down your name and your partner's name on the paper that's being passed around. Only this time around, you'll work on Lab 01 and Lab 02 with the same partner and I will not dock any points.
Day 5: Univariate Data: categorical variables, bar graphs, grouping, Lab 02 (I'll give you time during class to work on this with a partner)
Day 5: Univariate Data - Simple Models.ipynb (go through this prior to taking your RQ05)
Day 5: Day 05 Lecture Notes - Student Version.ipynb
Day 6: Univariate Data: simple models, HW01 assigned.
Day 6: Multivariate Data - Sorting.ipynb (go through this prior to taking your RQ06)
Grading (Wed 25 Jan):
LAB00 has been graded, and your grade has been posted onto your personal Google Spreadsheet. Feedback with solutions have been emailed to you.
Lesson 5 (Thurs 26 Jan):
RQ06 due today, before 2400.
RQ07 due today, before 2400.
Day 7: Multivariate Data: sorting data, scatterplots, EDA
Day 7: Day 07 Lecture Notes - Student Version.ipynb
Day 8: Advanced data manipulation: Functions
Day 8: Multivariate Data - Line Graphs and Functions (go through this prior to taking your RQ08)
Day 8: Day 08 Lecture Notes - Functions in Depth - Student Version.ipynb
Quiz 00 (12 points, 20 minutes)
An automatic -1.2 points if you don't know how to open a Jupyter notebook.
Section 3401: Take your quiz from 1050 - 1110 (check your email).
Section 5601: Take your quiz from 1425 - 1445 (check your email).
You have exactly 20 minutes to take the quiz. Then you have 1-2 minutes to upload your ipynb file to Blackboard. Not submitting your quiz on time will result in loss of several points, up to zero on the quiz.
Grading (Sat 28 Jan):
QUIZ00 has been graded, and your grade has been posted onto your personal Google Spreadsheet. Feedback with solutions have been emailed to you.
Lesson 6 (Tues 31 Jan):
RQ08 due today, before 2400.
Day 8: Advanced data manipulation: Functions
Day 8: Day 08 Lecture Notes - Functions in Depth - Student Version.ipynb (continue)
Day 9: Multivariate Data: functions, HW02 assigned.
Day 9: Multivariate Data - Working with Multiple Columns.ipynb (go through this prior to taking your RQ09)
Day 9: Day 09 Lecture Notes - Functions in Depth - Student Version.ipynb (I will give you the second half of class to work on this together in small groups. You can also work on the labs and homework that are due tonight by 2359.)
Grading (Wed 1 Feb):
HW00 has been graded, and your grade has been posted onto your personal Google Spreadsheet. Feedback with solutions have been emailed to you.
Note: if you do NOT type your alpha in your ipynb notebook, you WILL automatically get zero. For next time, please DOUBLE-CHECK this before submission.
Moral of the story: attention to detail matters! If you see a typo, an omission, or an error, work on it until everything has been fixed.
Lesson 7 (Thurs 2 Feb):
RQ09 due today, before 2400.
RQ10 due today, before 2400.
Day 10: Multivariate Data Lab, Lab 03 (I'll give you time during class to work on this with a partner, but you must work with a different partner)
Day 10: Advanced Data Manipulation - Combining Data Sets.ipynb (go through this prior to taking your RQ10)
Day 11: Advanced data manipulation: append, join, merge
Day 11: Advanced Data Manipulation - Branching.ipynb (go through this prior to taking your RQ11)
Day 11: Day 11 Lecture Notes - Student Version.ipynb
Grading (Sun 5 Feb):
RQ00 up to RQ08 have been graded. Your grades have been populated onto your personalized Google Sheet.
Lesson 8 (Tues 7 Feb):
RQ11 due today, before 2400.
Day 12: Advanced data manipulation: branching, function wrapping, HW03 assigned.
Day 12: Advanced Data Manipulation - Pivot Tables.ipynb (go through this prior to taking your RQ12)
Day 12: Day 12 Lecture Notes-Student Version.ipynb
Quiz 01 (15 points, you have exactly 25 minutes to take the quiz, and then 1-2 minutes to upload it to Blackboard)
Section 3401: Take your quiz from 1045 - 1110 (check your email).
Section 5601: Take your quiz from 1420 - 1445 (check your email).
Grading (Wed 8 Feb):
I will grade LAB01, LAB02, HW01, and QUIZ01.
LAB01 has been graded. Your grade has been posted on your Google Sheet and feedback has been emailed to you. If you did NOT upload your LAB01 like I asked you to (each person is supposed to upload his/her own lab), but your partner submitted your lab on your behalf (your alpha was on their ipynb file), then you lost 25% of the points.
LAB02 has been graded. Your grades are posted on Google Sheets and feedback has been emailed to you.
The python grader for HW01 is corrupted. I will get this troubleshooted and resume grading over the weekend.
Announcement (Wed 8 Feb):
The Course Coordinator writes all homework, labs, quizzes, and exams. I went through the python file Test 00 for typos and the Course Coordinator corrected them.
Lesson 9 (Thurs 9 Feb):
RQ12 due today, before 2400.
RQ13 due today, before 2400.
Day 13: ADM: pivot tables, Lab 04
Day 13: Storytelling with Data.ipynb (go through this prior to taking your RQ13)
Day 14: Advanced visualization: storytelling
Day 14: Storytelling with Data - Classwork - No Answers.ipynb
Grading (Thurs 9 Feb):
Resume grading HW01 and QUIZ01.
HW01 has been graded and your grade has been posted on Google Spreadsheet. Feedback has been emailed to you.
QUIZ01 has been graded and your grade has been posted on Google Spreadsheet. Feedback has been emailed to you.
Grading (Sun 12 Feb):
RQ00 through RQ08 have been re-graded (for those who got some of these done late) and RQ09 has been graded.
Grading (Mon 13 Feb):
Please make sure to check your grades via Google Sheets periodically. If there is an error/typo, let me know during class or via an email. Also, a midshipman pointed out to me that there is an error in your grades for RQ09-- I will troubleshoot it and get it fixed before submitting your 6-week grades.
Lesson 10 (Tues 14 Feb):
Day 14: Advanced visualization: storytelling
Day 14: SM208_Practice_Test_00A-LASTNAME.ipynb
Day 15: Review, Practice Tests
Day 15: SM208_Practice_Test_00A-LASTNAME.ipynb (work in small groups and at your own pace)
Day 15: SM208_Practice_Test_00A-SOLUTIONS.ipynb (work in small groups and at your own pace)
Day 15: SM208 Practice Test 00B - LASTNAME.ipynb (work in small groups and at your own pace)
Day 15: SM208 Practice Test 00B - SOLUTIONS.ipynb (work in small groups and at your own pace)
Between Wednesday 15 Feb to Friday 17 Feb, do NOT email or receive any ipynb, jpg, etc. attachments from others as it will trigger a notification to ITSD and us.
Grading (Tues 14 Feb):
RQ00 through RQ13 have been graded. Your grades have been posted on Google Sheets.
Most of the instructors decided to be generous with the due dates for RQ00 through RQ04. As long you completed RQ00 by 24 Jan and RQ01 - RQ04 by 20 Jan, then you should have received full credit.
Grading (Wed 15 Feb):
HW02 has been graded. Your grades have been posted on Google Sheets and feedback has been emailed to you.
Between Wednesday 15 Feb to Friday 17 Feb, do NOT email or receive any ipynb, jpg, etc. attachments from others as it will trigger a notification to ITSD and us.
Lesson 11 (Thurs 16 Feb):
Substitute for SM208 3401, Period 9 0955 - 1110, CH190: LCDR Chris Smith.
Substitute for SM208 5601, Period 10 1330 - 1445, CH190: LCDR Chris Smith.
EXTENSION: since today is a test day, I will change the due date for Lab 04. It will be due on Tuesday 21 February instead of today for a full credit.
Important: if you are going to be absent today (test day), please email me to let me know.
Important: between Wednesday 15 Feb to Friday 17 Feb, do NOT email or receive any ipynb, jpg, etc. attachments from others as it will trigger a notification to ITSD and us.
Day 15: For the first 25 minutes of the class, the midshipmen may review and study for the test.
Day 16: Test 00 (you have exactly 50 minutes to take your test and submit it to Blackboard. It will be emailed to you exactly 50 minutes before the end of class. If you continue to work on your test even after the time is up, you will lose points, up to get a zero on this test.)
Section 3401: Take your test from 1020 - 1110 (check your email). You then have exactly 1-2 minutes to upload your test to Blackboard.
Section 5601: Take your test from 1355 - 1445 (check your email). You then have exactly 1-2 minutes to upload your test to Blackboard.
You may leave after you submit your test to Blackboard. Good luck!
Grading (Fri 17 Feb):
Today is the cutoff day for your 6-week grades. Your 6-week grades will be reported into MIDS when I'm done grading your test today.
Test 00 has been graded. Your grade has been posted on your personalized Google Sheet and feedback has been emailed to you.
LAB03 has been graded. Your grade has been posted on your personalized Google Sheet and feedback has been emailed to you.
Today is the cut-off for 6-week grades. Your 6-week grades have been posted, and MAPRs have been submitted.
Lesson 12 (Tues 21 Feb):
RQ14 due today, before 2400.
RQ15 due today, before 2400.
Substitute for SM208 3401, Period 9 0955 - 1110, CH190: Capt Mitch Graves.
Substitute for SM208 5601, Period 10 1330 - 1445, CH190: Capt Ryan Martinez.
Day 17: Probability, HW04 assigned (do this on paper; due 1 week from now before the end of class).
Day 18: Bayes Rule/Conditional Probability Practice
Grading (Wed 22 Feb):
HW03 has been graded. Your grades have been posted on Google Sheets and feedback has been emailed to you.
Lesson 13 (Thurs 23 Feb):
RQ16 due today, before 2400.
RQ17 due today, before 2400.
I will print out HW04 and HW05 and pass them out during class so that you have physical papers in front of you as you work through these homework problems. Go by Prof. Im's mailbox outside her office and pick up a copy of HW04 and HW05 if you didn't pick up a copy during class.
Day 19: Introduction to Statistics: Causality, Randomness and Experiments - nature of statistical methods, HW05 assigned (do this on paper; due 1 week from now before the end of class).
Day 20: Random Processes and Discrete vs. Continuous Distributions (continue with Day 19 python Lecture notes)
Lesson 14 (Tues 28 Feb):
RQ18 due today, before 2400.
Day 20: Random Processes and Discrete vs. Continuous Distributions (continue with Day 19 python Lecture notes)
Grading (Wed 1 Mar):
HW04 has been graded and your grade has been posted on Google Sheets. If you did not show any work on this assignment, you lost 15% of the points. I'll pass back HW04 tomorrow.
LAB04 has been graded. Feedback has been emailed to you and your grades have been posted on Google Sheets.
Lesson 15 (Thurs 2 Mar):
RQ19 due today, before 2400.
RQ20 due today, before 2400.
Day 20: z-score and an example involving z-score
Day 21: Sampling and Iteration
Day 22: Center and Spread: mean, variance, standard deviation, Central Limit Theorem, HW06 assigned (back to being a Jupyter notebook).
Grading (Thurs 2 Mar):
HW05 has been graded. If you did not show work, you lost 15% of the points. It will be passed back on Tuesday.
Lesson 16 (Tues 7 Mar):
A quick review (of HW05): let's compute the variance by hand, and then compute the standard deviation of a data set.
Day 23: Variability of sample average
Work on the lecture notes (fill in the ...'s) during class independently or in small groups and email it to me before the end of this Thursday's class for a bonus point on Quiz 02.
Day 24: Hypothesis testing - one variable
Work on the lecture notes (fill in the ...'s) during class independently or in small groups and email it to me before the end of this Thursday's class for a bonus point on Quiz 02.
Grading (Tues 7 Mar):
I will grade HW04 (late submissions; note that you will lose 25% of the points).
Lesson 17 (Thurs 9 Mar):
RQ21 due today, before 2400.
Day 26: Hypothesis testing with multiple categories, Lab 05 assigned.
Since next week is Spring Break, Lab 05 will be due by Thursday 23 March at 2359 (after we return from Spring Break).
If you upload Lab 05 to Blackboard by Thursday 30 March at 2359, you will lose 25% of the points but you will not get a zero on this assignment.
Day 25: Quiz, Homework & Lab Review, HW07 assigned, Quiz 02.
Since next week is Spring Break, HW07 will be due by Thursday 23 March at 2359 (after we return from Spring Break).
If you upload HW07 to Blackboard by Thursday 30 March at 2359, you will lose 25% of the points but you will not get a zero on this assignment.
You have exactly the last 25 minutes of the class to take the quiz.
Quiz 02 is similar to HW04 and HW05.
If you do NOT show your work, you will get a 0 on that problem.
You will also get a 0 if your handwriting is illegible.
If you make a typographical error (even if it is a small error), then you may lose up to 50% of the points. So please double-check your steps and your final solution.
Notes, computer, etc. are not allowed. So this is a closed notes quiz.
Only a TI-36x pro calculator is allowed for arithmetic when calculating variance, standard deviation, and expected value (mean/average).
When you complete your quiz, you may leave. Good luck!
Grading (Thurs 9 Mar):
I will grade HW05 (late submissions; note that you will lose 25% of the points).
Grading (Fri 10 Mar):
Your Quiz 02 has been graded and your grades have been posted on Google Sheets.
Announcement (13 Mar - 17 Mar):
Spring Break; no classes this week (Have a wonderful break!! ☀️ 😀)
Lesson 18 (Tues 21 Mar):
RQ22 due today, before 2400.
Day 26: Hypothesis testing with multiple categories
I'll give you some time during class to work on LAB05 (from Thursday 9 March).
Day 27: Hypothesis testing: two sample, A/B testing
Upload Day 27: A-B Testing Lecture Notes.ipynb to Blackboard by Thursday 23 March 2023 at 2359. This will be a part of your LAB05 grade.
Lesson 19 (Thurs 23 Mar):
Day 28: Hypothesis testing: two sample, A/B testing, HW08 assigned.
Quiz 03 (12 points, you have exactly 25 minutes to complete your quiz, and then 1-2 minutes to upload it to Blackboard). Failure to follow instructions will result in loss of several points, up to getting a zero on the quiz.
Section 3401: Take your quiz from 1045 - 1110 (check your email).
Section 5601: Take your quiz from 1420 - 1445 (check your email).
I'll pass back Quiz 02 while you are taking your Quiz 03.
Grading (Mon 27 Mar):
HW06 has been graded. Feedback has been emailed to you and your grades have been posted on Google Sheets.
Quiz 03 has been graded. Feedback has been emailed to you and your grades have been posted on Google Sheets. I gave a bonus of 1 point to everyone since the highest grade was 11 out of 12 points.
Lesson 20 (Tues 28 Mar):
RQ23 due today, before 2400.
Go through Quiz 03 as a class.
Day 29: Bootstrapping.
Grading (Tues 28 Mar):
RQ00 through RQ23 have been graded today. Your grades have been posted on Google Sheets.
Lesson 21 (Thurs 30 Mar):
Day 32: Intro to prediction: Bayes Predictor (this lesson will not be on Test 01)
Day 30: Bootstrapping, Lab 06 (you can work on Lab 06 during class or go through Practice Exams).
Day 31: Review (you can work on Lab 06 during class or go through Practice Exams).
HW08 hints:
Question 18: add ddof = 1 to your code for sample standard deviation.
Question 21: to calculate your 95% confidence interval if the histogram of sample means has a normal distribution (recall the Central Limit Theorem), you must compute 95% CI = (left, right), where
left = sample mean - 2*sample standard deviation/√sample size,
right = sample mean + 2*sample standard deviation/√sample size.
The reason why you have to compute in this (long) way, and not use the percentile function, is because you don't have a data set of the sample means associated to the midshipmen shoe size.
These are the only information you have: sample mean, sample standard deviation and sample size.
Grading (Sat 1 Apr):
HW07 has been graded.
Lab 05 has been graded. If you uploaded your Day 27 Lecture Notes onto Blackboard (as instructed above), I have given you 2 bonus points.
Lesson 22 (Tues 4 Apr):
Day 31: Review
Day 33: Test 01 (you have exactly 50 minutes to take your test and submit it to Blackboard. It will be emailed to you exactly 50 minutes before the end of class. If you continue to work on your test even after the time is up, you will lose points, up to get a zero on this test.)
Section 3401: Take your test from 1020 - 1110 (check your email). You then have exactly 1-2 minutes to upload your test to Blackboard.
Section 5601: Take your test from 1355 - 1445 (check your email). You then have exactly 1-2 minutes to upload your test to Blackboard.
There are 20 questions on the test.
Lesson 23 (Thurs 6 Apr):
RQ24 due today, before 2400.
RQ25 due today, before 2400.
Day 34: Intro to Correlation: Regression, least squares, and residual analysis
Day 35: Regression Lines: Regression, least squares, and residual analysis
Grading (Fri 7 Apr):
RQ00 through RQ25 have been graded. Your grades have been posted on Google Spreadsheet.
HW08 has been graded.
Grading (Sat 8 Apr):
The Course Coordinator writes all the homeworks, labs, quizzes, and exams. Since no one double-checked what he wrote for Test 01, this resulted in a lot of typos in our second test.
Test 01 has been graded (due to a lot of typos on Test 01 and because it was on the more difficult side due to its length and the number of typos, I gave a generous partial credit throughout the test).
Your 12-week grades have been posted on MIDS.
Grading (Sun 9 Apr):
Personalized Test 01 feedback has been emailed to you. Bonus points have been added to your test grade.
MAPRs have been submitted.
Lesson 24 (Tues 11 Apr):
RQ26 due today, before 2400.
Day 35: Regression Lines: Regression, least squares, and residual analysis (complete Question 2)
Day 36: Variability of Regression Lines: Inference for regression (true slope, prediction intervals), HW09 assigned.
Lesson 25 (Thurs 13 Apr):
RQ27 due today, before 2400.
Day 37: Inference for regression (true slope, prediction intervals), Lab 07
Day 38: Machine learning: Nearest Neighbor, training & testing, classification, accuracy and the class imbalance problem
Go through the first half of Day 38 Machine learning lecture notes at your own pace. We'll discuss this on Tuesday.
Grading (Fri 14 Apr):
LAB06 has been graded. Your grade is posted on Google Spreadsheet and feedback has been emailed to you.
Lesson 26 (Tues 18 Apr):
RQ28 due today, before 2400.
Day 38: Machine learning: Nearest Neighbor, training & testing, classification, accuracy and the class imbalance problem
Day 39: Machine learning, Lab 08
9th period: we have a faculty visitor Professor Max Wakefield visiting our class. He will need to leave a bit early (before the class ends) but continue to work on your Lab 08, and please be on your best behavior.
What do we do in Machine Learning (Day 38)?
We partition (split) the data set. One part we use to train the model. Another separate part we use to assess the model, pretending that this is new data so that we only see the predictor variables and then assessing our predicted values against the actual values of the response variable. We call these two subsets of the data the training and testing subsets. They should have no observations in common, so that we don't "pollute" the training set with data we want to use for testing. The book suggests splitting the data in half and using one half for training and one half for testing. A more common approach in machine learning first shuffles the rows (by using the '.sample' method with option 'with_replacement = False') and then splits the data set into three disjoint pieces. We use about 60% of the data for training, 20% for development, and hold out another 20% for testing.
Why 60% for training, 20% for development, 20% for testing? The idea is that sometimes we want to "peek" and see how our model is doing but we can't look at the testing set since that is off limits until we are ready to perform a final assessment of our model. Instead, we can see how our model is doing on the development data set.
Example: Suppose that I want to know if it is helpful to use the number of bedrooms to predict home price. I might try to fit a linear model with number of bedrooms and several other variables and fit a second linear model with those same variables but without the variable measuring the number of bedrooms. To compare the models we might want to use our cost values, RMSE, on the training data. But the training data was used to fit these models so it isn't a good predictor of how they will perform on new data. We need a batch of new data! Let's use the development data! We can compute the predictions on the development data and then compute the cost values (the RMSE) on the development data (since we know the home prices for this data). We use the performance on the development data: the model with the lower cost is better. Only when we are finally happy with our model do we assess its performance on the testing data.
Lesson 27 (Thurs 20 Apr):
RQ29 due today, before 2400.
Day 40: Ethical Issues in Data Science, HW10 assigned.
Go through Day 40 lectures notes in small groups.
Work on HW10 in small groups.
9th period substitute: LCDR Chris Smith
10th period substitute: Dr. Van Nguyen
Grading (Sat 22 Apr):
HW09 has been graded. Your grade has been posted on Google Spreadsheet and feedback has been emailed to you.
Grading (Mon 24 Apr):
LAB07 has been graded. Your grade has been posted on Google Spreadsheet and feedback has been emailed to you.
Lesson 28 (Tues 25 Apr):
RQ30 due today, before 2400.
Day 42: Data Science for Decision Making
Upload completed Day 42: Data Science for Decision Making - Case Study .ipynb by Tuesday 2 May 1500 for bonus points to LAB09 and LAB10.
Day 41: Data Science for Decision Making Intro, Quiz 04
Khost Call final project counts as Lab 09 and Lab 10.
Work on your final project with your partner all day this Thursday during class.
The assignment is essentially a Go/No-Go decision for a military mission where you have to conduct calculations and build graphs to validate your decision.
This is an assignment where you will be graded against other groups. So do not share your code.
Upload your cleaned Jupyter notebook to Blackboard as Lab09 (each person must upload their python file). Due Monday 1 May at 2359.
Upload your 3 - 5 slide PowerPoint presentation to Blackboard as Lab10 (upload 1 per group; all names should be on the first page of your presentation slides). Due Monday 1 May at 2359.
Quiz 04:
There are 8 questions and you have exactly 25 minutes to complete it.
Section 3401: Take your quiz from 1045 - 1110 (check your email; it should arrive around 1042).
Section 5601: Take your quiz from 1420 - 1445 (check your email; it should arrive around 1417).
Grading (Tues 25 Apr):
RQ00 through RQ30 have been graded, and your grades updated on Google Sheets.
Quiz 04 has been graded. Feedback has been emailed to you and your grade is posted on Google Sheets.
Grading (Wed 26 Apr):
Late HW09 has been graded. Your grade has been posted and feedback has been emailed to you.
Lesson 29 (Thurs 27 Apr):
Day 42: Work on your Khost Call final project.
The assignment is essentially a Go/No-Go decision for a military mission where you have to conduct calculations and build graphs to validate your decision.
You need to present plausible COAs for dealing with the threat, i.e., after you make your decision using your data analyst skills, use your accumulated political science/history expertise to come up with mitigating solutions.
Who can you join forces with? What would you have them do? Provide surveillance around the area?
How can you use local resources, intelligence, support, road closures?
Where can you get more air support? Does this request need to be raised to a higher level? Who can do that?
Are there costs for inaction as well as action? Not attacking now may subject our troops to attacks in the future. How is this going to be prevented?
Suppose it was for Friday night (28 April 2019). How would weather affect your decision? What are additional things you should be aware of? For example, Ramadan.
Additional considerations: are the graphs appropriate? How can the graphics be enhanced to more clearly convey the message? Is the message clear? Are you following the KISS principle (keep it simple, stupid)? To put simply, the KISS principle says that simplicity is the key goal when designing something. We should avoid complexity.
This is an assignment where you will be graded against other groups. So do not share your code.
Upload your cleaned Jupyter notebook to Blackboard as Lab09 (each person must upload this to Blackboard). Due Monday 1 May at 2359.
Upload your 3 - 5 slide PowerPoint presentation to Blackboard as Lab10 (all group members' name should be on the first page of the slides, and only 1 person needs to upload your presentation to Blackboard). Due Monday 1 May at 2359.
Each presentation should last 3 - 5 minutes.
Day 44: Review
9th period substitute: LCDR Chris Smith
10th period substitute: Capt Mitch Graves
Grading (Fri 28 Apr):
Late LAB07 has been graded. Your grade has been posted on Google Sheets and feedback has been emailed to you.
LAB08 has been graded. Your grade has been posted on Google Sheets and feedback has been emailed to you.
HW10 has been graded. Your grade has been posted on Google Sheets and feedback has been emailed to you.
Announcement (Fri 28 Apr):
Practice Final Exams have been posted (Day 44 and Day 45)! Feel free to download the exams and begin working through them this weekend.
Lesson 30 (Tues 2 May):
Day 43: Data Science for Decision Making
Khost Call final project in-class group presentations. Each presentation should last 3 - 5 minutes.
Day 44: Review
Day 45: Review and SOF!
And a small party!
LAB08 and HW10 are due today by 2359 (last day of class)!
Grading (Wed 3 May):
Late LAB08 and late HW10 have been graded. Your grades have been posted on Google Sheet and feedback has been emailed to you.
I have re-downloaded and regraded all RQ00 through RQ30.
LAB09 and LAB10 have been graded.
Announcement (Wed 3 May):
Enjoy the concert by OneRepublic!!
Final Exam Review Session (Thurs 4 May, 1000 - 1200):
Announcement (Sat 6 May, 1000 - 1900):
The Course Coordinator writes all the homework, labs, quizzes, and exams for this course.
I checked for typos in your Primary and Alternate Final Exams and the Course Coordinator fixed all these typos.
Final Exam (Tues 9 May, 0755 - 1055):
Section 3401 (15 midshipmen): CH157
Section 5601 (17 midshipmen): CH160
The final exam has 34 problems and all problems will by on python!
If you want to show work, type some of the work onto python (you can do some of the problems on paper first). You can also use hashtag # to leave comments for me.
Bring your laptop charger since the entire exam will be on python.
The final exam is to be completed on your own with no help from another person. However, you are allowed to use any other resource, including our textbook, our class website, your notes, past assignments, past labs, a reference sheet, and internet searches.
Any use of an MGSP document or notes must be local to your device. That is, do not use a Google Doc where multiple people have access to it. Use of this document will be considered cheating since you can communicate through it.
Unless you are in MIDS as taking the alternate, you must be at the primary. Any issue with this should be communicated through your instructor.
Announcement (Tues 9 May):
Primary final exams have been graded.
Alternate Final Exam (Wed 10 May, 1300 - 1600):
Room: MI118
Announcement (Wed 10 May):
Alternate final exams have been graded.
Your end-of-term, final exam, and final course grades are posted in MIDS and MAPRs have been submitted.
Current Lessons.
Annnouncement (Wed 10 May):
Have a wonderful, safe, and productive summer!! ☀️ 🌸 🌼 🌻 🌷 📘 📚 🕮 ⚽ ⚾ 🏀 🏈
On my midshipmen's presentation, on the last slide.
Flowers are blooming nicely this year.
Spring 2023 Schedule on Google Spreadsheet.
The spreadsheet below will take you to the files you need for each lesson.
Announcements and Emails.
Announcement Wed 3 May 2023 at 1730:
Enjoy the concert by OneRepublic!
Announcement Wed 3 May 2023 at 1624:
In preparation for your Final Exam, this is a friendly reminder to organize all the files in your Spring 2023-SM208 folder according to the day we covered the material by creating a folder for each Day, and when naming these folders, you should include the main topics covered on that day. For example, here is how I organized and named my folders.
"DONE" here means we either covered the topic in class or I have graded all the assignments in that folder (so "DONE" is really a note to myself).
Announcement Sun 23 Apr 2023 at 1846:
Practice Final Exams will be posted after Friday 28 April! Feel free to download the exams and begin working through them.
Announcement Mon 13 Feb 2023 at 1030:
Please make sure to check your grades via Google Sheets periodically. If there is an error/typo, please let me know during class or via an email. Also, a midshipman pointed out to me that there is an error in your grades for RQ09-- I will troubleshoot it and get it fixed before submitting your 6-week grades.
Announcement Fri 10 Feb 2023 at 1030:
I strongly suggest that if you lost any (partial) points on any of your assignments or quizzes, go back and correct them (see the feedback that I have been emailing you for a correct way to code in python).
Announcement Thurs 9 Feb 2023 at 0930:
Between Wednesday 15 Feb to Friday 17 Feb, do NOT email or receive any ipynb, jpg, etc. attachments from others as it will trigger a notification to ITSD and us.
Announcement Wed 8 Feb 2023 at 1325:
If you are going to be absent on Test 00 day (Thursday 16 Feb), please let me know (via an email) at your earliest convenience.
Announcement Tues 7 Feb 2023 at 1830:
Your Test 00 will not occur during an X period (0655 - 0745) since we need to accommodate everyone in our classes. Since we have Plebes all the way up to Firstees taking SM208, no X period will work for everyone in our course. This means you will take Test 00 in your regularly scheduled period. For our sections, your Test 00 will be on Thursday 16 Feb.
Just for Fun Sat 21 Jan 2023 at 1900:
It's not always all about work-- US Army Corps of Engineers created a 2023 calendar with giant cats on their infrastructure.
Download the calendar from the USACE Digital Library, or download their images from this link.
Announcement Fri 20 Jan 2023 at 2000:
The AI community is moving at a rapid pace but we still have a long way to go.
"US Marines Use Cardboard Box to Defeat DARPA Robot Trained to Detect Humans"
"DARPA spent a week with a group of Marines at a test site in order to help train an AI robot by attempting to defeat it. The robot was parked 'in the middle of a traffic circle' and the Marines had to approach it undetected. Scharre explains, 'If any Marines could get all the way in and touch this robot without being detected, they would win.'
In a great example of how terrible AI still is, all [eight] of the Marines managed to remain undetected. DARPA trained the AI to detect humans walking, but not much else. So Scharre explains how two of the Marines 'somersaulted for 300 meters,' another two hid under a cardboard box, and another 'stripped a fir tree and walked like a fir tree.' Apparently a lot of giggling was involved, which is another feature of humans the robot hadn't been trained to detect.
Those 'simple tricks,' Scharre said, were 'sufficient to break the algorithm.'"
Announcement Thurs 19 Jan 2023 at 2319:
An application of Artificial Intelligence: stable diffusion; it is a text-to-image diffusion model capable of generating realistic images given any text input.
I typed in "rabbit and drone and puppy playing tag with Pokemon".
A sample, freely available stable diffusion python code.
Announcement Thurs 19 Jan 2023 at 2231:
ChatGPT is an Artificial Intelligence bot that engages in almost human-like dialogue based on a prompt.
I told chatGPT to "write a song about programming in Python with accompanying chords".
Announcement Thurs 19 Jan 2023 at 1205:
Since you are getting used to opening and executing python files, do the reading (or go through the python file) in the green box on your own before doing the Reading Quiz to the left of the link.
Announcement Wed 18 Jan 2023 at 1733:
Day 8 and Day 9 course material have been swapped (so Day 9 should follow nicely from Day 8), and all website, all folders, and documents have been updated to reflect this.
Announcement Tues 17 Jan 2023 at 1625:
Yes, you will get bonus points for turning in (uploading) your assignments early and on time (such bonus point opportunities are indicated on the top of the python file).
Announcement Wed 11 Jan 2023 at 2021:
If you are off the yard, you need to VPN in order to link Jupyter and Google Drive. You can VPN using Cisco AnyConnect Secure Mobility Client or https://sslvpn.usna.edu/ . Then use a Command Prompt to link them: mklink /J "C:\Users\m123456\DFS_Link_Jupyter" "G:\My Drive"
We will use the python template from each day for interactive lectures and discussions. However, do NOT delete cells as you may run into errors or you may introduce bugs when you run your python template. Also, when I grade your homework, labs, quizzes, exams, etc., my python codes may not read or misread your solutions. So if you accidentally delete some cells, the best course of action would be to download the (original) python template again from the Lessons Link.
This is NOT a programming course; this is a data manipulation course.
Create folders for each lesson/day, i.e., Day 01, Day 02, Day 03, Day 04, etc.
Practice exams will be available in order to better prepare you for your exams.
Announcement Mon 9 Jan 2023 at 1438:
You can also install Google Drive from this link in case you cannot find Google Drive from the Software Center.
Email sent out on Sun 8 Jan 2023 at 1622:
Good afternoon,
BLUF: Before class on Thursday, you need to take ~10 mins to download software utilized throughout the semester.
Intro
Welcome back to the Yard. My name is Professor Im and I'll be your SM208 Instructor this Spring. We will have plenty of time to introduce ourselves and the course on the first day of class. I am going to keep this short since I'm sure you are receiving multiple reform emails, in addition to emails from the rest of your instructors.
Course Website
The following link is to the course website. The course website contains the entire semester's syllabus, course material, assignments, etc. I will walk you through this on the first day of class.
https://sites.google.com/usna.edu/ds4dm-spring-aye23/home
Furthermore, since we meet on Tuesdays and Thursdays, we will follow the schedule here on my SM208 course website: Mee Seong Im, Doctor of Philosophy (Ph.D.) in Mathematics - Spring 2023 SM208 (google.com)
Due-Out: Downloading Python + Google Drive
Throughout the semester, we will be utilizing the most popular programming language around called Python. In addition to downloading Python onto your computer, we are also going to do one additional step to allow you to access the files you save in your personal google drive. The following PDF contains step by step instructions on accomplishing this task. It shouldn't take more than 10 minutes.
Step 1: Follow the instructions to download the "Anaconda Navigator" onto your computer. This will be the interface we use for Python.
Step 2: Download "Google Drive" (not Google File Stream, ITSD updated this) directly onto your computer. The instructions in the PDF call this "Google Drive File Stream", which has since been shortened to just called "Google Drive." When completing "Step 5" of this process, ensure to pay attention to all the spaces in that single line of code you place into the command prompt. For example, there is a space after the "J" and "C", in addition to a space between "My" and "Drive". You will see what I mean in the PDF under Step 5. You will know you did this correctly if it says something about a junction being created.
We will troubleshoot in class, but we do not have time to wait for everyone to download Anaconda as this takes most of the time.
Failure to have this set up properly means you will quickly fall behind in this course.
Reach out if you have questions, and I will see you in class on Thursday.
Professor Im