Course Overview

Course Description

Content

This class gives students skills and experience to access and organize data, scrape data from websites, determine and improve data quality, and produce graphical representations to help discover patterns and answer questions. Topics will be introduced during class with demonstrations followed by graded in-class activities. Programming assignments take these activities further, culminating in a student-driven project.

Prerequisites

CS 2435 or CS 2440

Objectives

  1. Access data from a variety of sources such as text and binary files, databases, and web APIs;
  2. Automate data acquisition by scraping static web pages and scripting user interactions with a web browser for dynamic web pages;
  3. Store collected data in an extensible structure that allows updates without starting from scratch;
  4. Apply statistics and simple visualizations to reveal and fix potential data problems such as outliers and missing values;
  5. Visualize data to reveal reproducible patterns that might be useful for predicting future events; and
  6. Apply these skills to a student-driven project.

Course Requirements

Materials

Required

Resources

Assignments

Class activities

After a topic has been introduced, students work on graded activities during class.

Programming Assignments

Programming Assitnments builds on the in-class activities and can be tailored to individual projects.

Final Project and Presentation

The final project is the culmination and application of the class activities and programming assignments to an individual student project.

Grading & Policies

Course Policies

Attendance Policy

This class meets in person and attendance is mandatory; unexcused absences will deduct 1% from the final grade.

If you are sick, please stay home. We will be following CDC guidelines regarding the Flu, COVID-19, and RSV.

Statement on Student Engagement with Courses

In its mission statement, Appalachian State University aims at "providing undergraduate students a rigorous liberal education that emphasizes transferable skills and preparation for professional careers" as well as "maintaining a faculty whose members serve as excellent teachers and scholarly mentors for their students." Such rigor means that the foremost activity of Appalachian students is an intense engagement with their courses. In practical terms, students should expect to spend two to three hours of studying for every hour of class time. Hence, a fifteen-hour academic load might reasonably require between 30 and 45 hours per week of out-of-class work.

Printable PDF of the Statement of Student Engagement with Courses

Since our class is a 3-hour class, you should expect to spend at least 9 hours per week outside of class. Because programming can be more time-consuming than studying things in other disciplines, that amount of time should be considered a minimum.

Instructor Responsibilities

I will vigorously pursue knowledge and share my learning process with you. Just like debugging, a scientific approach to learning nearly always provides a path forward. I will be accessible during class, office hours and over email. If you need to meet outside of those times, email me to set up an appointment. I really do want this class to succeed. So, please send me your comments, positive or negative, that will help improve the course.

Academic Integrity

During class, you may work with a partner for the in-class activities. Outside of class, all other assignments are completed individually. In this class, you will develop an individual data science project. You are not expected to do this from scratch. You may use existing libraries, open-source code, code from the textbook, code that you've used for other classes to solve problems in this class. However, you must cite the work of others that you use. If you use other code (no matter the source), you must cite the source, for example, as a URL or book citation.

AI-based Assistance

The following policy is adopted from Georgia Tech:

We treat AI-based assistance, such as ChatGPT and Copilot, the same way we treat collaboration with other people: you are welcome to talk about your ideas and work with other people, both inside and outside the class, as well as with AI-based assistants.

However, all work you submit must be your own. You should never include in your assignment anything that was not written directly by you without proper citation (including quotation marks and in-line citation for direct quotes).

Including anything you did not write in your assignment without proper citation will be treated as an academic misconduct case. If you are unsure where the line is between collaborating with AI and copying AI, we recommend the following heuristics:

Heuristic 1: Never hit “Copy” within your conversation with an AI assistant. You can copy your own work into your own conversation, but do not copy anything from the conversation back into your assignment.

Instead, use your interaction with the AI assistant as a learning experience, then let your assignment reflect your improved understanding.

Heuristic 2: Do not have your assignment and the AI agent open at the same time. Similar to the above, use your conversation with the AI as a learning experience, then close the interaction down, open your assignment, and let your assignment reflect your revised knowledge.

This heuristic includes avoiding using AI directly integrated into your composition environment: just as you should not let a classmate write content or code directly into your submission, so also you should avoid using tools that directly add content to your submission.

Deviating from these heuristics does not automatically qualify as academic misconduct; however, following these heuristics essentially guarantees your collaboration will not cross the line into misconduct.

ASU Academic Integrity Statement

Appalachian State University's Academic Integrity Code is designed to create an atmosphere of trust, respect, fairness, honesty, and responsibility. The Academic Integrity Code outlines "user-friendly" procedures and mechanisms for resolving alleged violations of academic integrity. The Academic Integrity Code is the result of cooperation among Appalachian's faculty, students, and administrators, and promotes a campus dialogue about academic integrity. All members of the Appalachian State University community are responsible for promoting an ethical learning environment.

Students attending ASU agree to abide by the following Code:

Printable PDF of the Complete Academic Code available on the Academic Integrity site

Public Sharing of Course Materials

All course materials, including video, may be subject to intellectual property protections under applicable law and regulation and are for the sole use of students enrolled in this class. Students do not have permission to copy or record materials except for personal use in the context of this class and students do not have permission to share any class materials, including videos, in any manner on any platform without the prior express permission of the faculty member teaching this course.

Grading

Calendar

The official sequence of class activities is maintained on ASULearn.