Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


Welcome to ISTA 131 – Dealing with Data!


Introduction. ISTA 131 is an introduction to the art of dealing with data – how it's represented in the computer, how to access it, how to manipulate it, how to store it, how to visualize it, how to analyze it, how to draw and justify conclusions from it, and how to present it. In order to do anything useful with data, we have to have some coding skills, so this class will use the Python skills you learned in ISTA 130. Data science is a huge deal in the job market these days, and this class will give you a firm foundation in the practice of it. Because skills are only learned by practice, this class gives you lots of opportunities to put your hands on the keyboard.

Covid. Because of covid, the class is online this semester. I am leaving a lot of the syllabus the same because I hope that this is the last online semester. I am leaving the schedule as though we are meeting every Tuesday and Thursday, although the class is fully asynchronous. We go through a lot of new material and meet a lot of new tools during the first half of the semester so it is REALLY important that you do not get behind. It will be hard to catch up if you do. A lot of the Panoptos are really short. Just go through the submodules in each weekly module on D2L in the order that they are listed. Everything that is graded is on the D2L calendar. It will seem like a lot at first, but we provide lots of support and I am pretty generous in curving. If you do the work, you will be fine.

Competencies. This class addresses the following ISTA BS competencies (see the table at the end of this document for an explanation of each): F1.1, F1.2, F1.3, DAISBS2.1, DAISBS2.2, DAISBS2.3.

Learning Outcomes.

● Students will be able to traverse 2-dimensional data structures using nested loops.

● Students will be able to use default arguments to write functions that have optional arguments when called.

● Students will be able translate binary numbers to decimal numbers; binary numbers to hexadecimal numbers and back; and to use an ASCII table to translate hexadecimal numbers into characters.

● Students will be able to differentiate between plain text and binary file formats and select appropriate tools for dealing with various file formats.

● Students will be able to construct SQL queries that create, update, and destroy databases and tables; that retrieve, sort, filter, aggregate, calculate, manipulate, and summarize data; that contain subqueries; that create views; and that manage transactions. Students will be able to create tables that relate to each other through primary and foreign key constraints and to select related data from these tables by creating queries that use natural joins.

● Students will be able to do everything described in the previous bullet point using the SQLite3 DBMS from the Python programming language.

● Students will be able to create and manipulate numpy arrays in multiple ways to store, alter, and manipulate data.

● Students will be able to create and manipulate pandas data structures in multiple ways to store, alter, and manipulate data.

● Students will be able to store date/time data in timestamp objects and to use timestamp objects as labels on time series.

● Students will be able to use pandas plotting functionality and the seaborn and matplotlib packages to create clear and meaningful visualizations of data.

● Students will be able to categorize data as either discrete or continuous, create and use either PMF's or PDF's as appropriate based on the type of data to make predictions, and to create bar charts or histograms as appropriate based on the type of data to visualize the distribution of the data.

● Students will be able to collaborate remotely using the git version control system.

● Students will be able to convert data stored in JSON format into Python data structures and vice versa.

● Students will be able to perform sentiment analysis on text using the textblob package.

● Students will create three visualizations of data of their own selection and present these images to the class as their final project.

Prerequisites. ISTA 130 and Math 109C or Math 112 or a higher Math class.

Location/Time.

Instructor.

Name: Rich Thompson

Office: Harvill 442

E-mail that goes to me and all SL’s: [email protected]

E-mail just to me: [email protected]

Office Hours. By appointment and (possibly to change when SL OH known):

Section leader office hours will be posted in a separate document. I do not require section leaders holding office hours at night to remain in the office and/or online if no one is showing up. If you want late office hour help, it is a good idea to let the relevant section leader know in advance.

Discussion Sections.

Each discussion section is led by an undergraduate section leader (SL). Section leaders rock! They are expert Python programmers and totally committed to their teaching duties. Weekly discussion sections will give you the opportunity to work on timely programming examples, ask questions about recent lecture topics you don't fully understand, and will allow us to offer clarifications on programming exercises, among other activities.

Each of the SLs has successfully completed (at least) ISTA 131 and is compensated by the School with credits and/or dollars to help you learn the material. In addition to leading a section each week, they grade assignments and quizzes, assist in grading the exams, inform the instructor on what topics seem to be especially baffling to the students, write quizzes and assignments, and hold office hours. We expect that you'll find your section leader to be a valuable resource.

We will be using Python 3.6+ as the programming language for this class. This version of Python (available for Windows, Mac OS, and Linux from python.org) has been installed in the following labs:

OSCR Labs:

Mac & Windows

- Campus Rec, ENG 318, McClelland Park 102, Nugent 15b, Shantz 338, SUMC Lab, and the Park Student Center lab. More info here: http://uits.arizona.edu/departments/oscr/locations/hours.

Windows only

- ECE 229

Map of OSCR Lab Locations:

http://uits.arizona.edu/node/552

OSCR Lab Hours:

http://uits.arizona.edu/departments/oscr/locations/hours

OSCR Lab Policies:

http://uits.arizona.edu/departments/oscr/locations/policies

You will also be able to complete your assignments using your own desktop or laptop computers. All of the software we use in this class is freely and legally available for you to download and install. You hopefully won’t have any problems getting Python set up, it’s straightforward, but if you do, help for students with personal computer issues is available from the UITS 24/7 help desk around the clock.

Section Leaders.

001A Elias Anastopoulos: [email protected]

001B Grace Chmielinski: [email protected]

001C Alyssa Crawford: [email protected]

001D Samantha Staltari: [email protected]

Better yet, send your question to all of us: [email protected]

I do not require section leaders who are holding evening office hours to stay for the whole time if no one is showing up/discussing online. If you are planning on arriving late to evening office hours, it is advisable to make prior arrangements.

Textbooks. There is no required text. The 130 book, good for basic Python, is available free at: http://interactivepython.org/runestone/static/thinkcspy/index.html

The following text, available free online to UA students, is an outstanding book. If this class had a textbook for the pandas portion of the class, this would be it.

McKinney, Wes. (2018). Python for Data Analysis, 2nd Edition. O'Reilly Media, Inc. http://proquest.safaribooksonline.com.ezproxy1.library.arizona.edu/book/programming/python/9781491957653

The following text, available free online to UA students, is also an outstanding book. If this class had a textbook for the SQL portion of the class, this would be it.

Forta, Ben. (2019). Sams Teach Yourself SQL in 10 Minutes a Day, 5th Edition. Sams. https://proquest-safaribooksonline-com.ezproxy3.library.arizona.edu/book/databases/sql/9780135182925

In addition to the primary text you may wish to reference the following (freely available online to UA students):

Lutz, M. (2013). Learning Python, Fifth Edition. O'Reilly Media, Inc. http://proquest.safaribooksonline.com.ezproxy2.library.arizona.edu/book/programming/python/9781449355722

Grading. Grades will be based on discussion sections, quizzes, programming assignments, two midterms, and a final project as follows:

● Programming assignments are the heart of this class, although they are only 30% of the grade. The learning happens through these assignments, coding examples, and discussion exercises; evaluation happens on the tests and the final project. Programming is one of those things that can only be learned by doing. We grade your latest submissions.

● Your lowest discussion section score will be dropped.

● Programming assignments will typically be due at 11:59 pm on Thursdays. Programs can be turned in up to 11:59 pm on Friday for a 10% reduction in grade. After that, a grade of zero will be awarded. No work will be accepted after the last lecture without prior arrangement.

● If you miss the first midterm, the second midterm will be worth 40% of your grade.

● If you do better on the second midterm than on the first midterm, the second midterm grade will replace your first midterm grade. But not the other way around. Don't miss the second midterm.

● Your final grade will be at most one letter grade higher than your final project grade. For example, if you get a C on your final project, the best you can do in the class is a B.

● Do not think that you can throw something together in a few hours at the end of the semester and nail the final project. It will be obvious, and you will pay the price.

● Requests for the grade of Incomplete MUST be made prior to the final. All but the last two assignments must have been completed with a passing average. See the Grading Policy section below for the relevant UA link.

● Expect the grading scale not to change. If you do all of the work in disciplined fashion, then it is really easy to get a good grade in this class. It might (but probably won't) get easier. It won't get harder.

Cheating. Collaboration is allowed on programming assignments. It is up to you to make mature decisions about your learning process. If you depend too much on others while doing your assignments, you will get killed on the tests. If you are the party providing help, you are assuming the role of teacher, with its attendant responsibilities. If you do not take them seriously, you aren’t helping your friend, you are hurting him/her. You may do this in response to social pressure, to feed your ego, or just out of inexperience, but this is no good for anybody.

If you work with others or get code from others, you need to state this in your program documentation. Representing the work of others as your own is both lying and cheating. If you are caught engaging in this behavior, an academic dishonesty complaint will be filed against you with the Dean's office. The party providing the code is also guilty – if you aren't certain your friend will acknowledge your code in his/her documentation, don't provide it. These sorts of behaviors can become habitual and lead to seriously negative consequences in life.

When using the code of others, there is a point after which we won't consider the work to be yours and you won't get credit for it (although it's not cheating if you are honest about it). We determine where this point lies on a case by-case basis.

Tests are solo efforts! If I catch you cheating, I will prosecute to the full extent allowed by University policy: http://deanofstudents.arizona.edu/policies-and-codes/code-academic-integrity. I reserve the right to move students into seats of my choosing.

Class Schedule. These are the topics we will cover. Exams will occur as scheduled, but topics may be reached sooner or later than specified below. I have left this as though this were a regular in-person class. The class will be organized by week on D2L.

Attendance Policy

● The UA’s policy concerning Class Attendance and Administrative Drops is available at: http://catalog.arizona.edu/2015-16/policies/classatten.htm

● The UA policy regarding absences on and accommodation of religious holidays is available at http://deanofstudents.arizona.edu/policies-and-codes/accommodation-religious-observance-and-practice.

● Absences pre-approved by the UA Dean of Students (or Dean designee) will be honored. See: See: https://deanofstudents.arizona.edu/absences

Grading Policy

University policy regarding grades, including the grades of incomplete (I) and withdrawal (W), and grading systems is available at: https://catalog.arizona.edu/policy/grades-and-grading-system. Grades of I or W will be awarded only in accordance with University policy.

More UA Policies.

● UA Non-discrimination and Anti-harassment policy: http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy

● Confidentiality of Student Records: https://www.registrar.arizona.edu/personal-information/family-educational-rights-and-privacy-act-1974-ferpa

● General policies: http://deanofstudents.arizona.edu/policiesandcodes

● More on policies and procedures: http://catalog.arizona.edu/2015-16/policies/aaindex.html

● Student Assistance and Advocacy information is available at: http://deanofstudents.arizona.edu/student-assistance/students/student-assistance

● Threatening behavior: http://policy.arizona.edu/education-and-student-affairs/threatening-behavior-students

● Student code of conduct: https://azregents.asu.edu/rrc/Policy%20Manual/5-308-Student%20Code%20of%20Conduct.pdf

● Final exam rules: https://www.registrar.arizona.edu/courses/final-examination-regulations-and-information

● Final exam schedule, http://www.registrar.arizona.edu/schedules/finals.htm

Academic Integrity: In general, students are expected to follow the University of Arizona Code of Academic Integrity: http://deanofstudents.arizona.edu/codeofacademicintegrity.

Here is the section of the University's Code of Academic Integrity entitled “Prohibited Conduct":

Students enrolled in academic credit bearing courses are subject to this Code. Conduct prohibited by this Code consists of all forms of academic dishonesty, including, but not limited to:

1. Cheating, fabrication, facilitating academic dishonesty, and plagiarism as set out and defined in the Student Code of Conduct, ABOR Policy 5-308-E.6, E.10, and F.1

2. Submitting an item of academic work that has previously been submitted or simultaneously submitted without fair citation of the original work or authorization by the faculty member supervising the work.

3. Violating required disciplinary and professional ethics rules contained or referenced in the student handbooks (hardcopy or online) of undergraduate or graduate programs, or professional colleges.

4. Violating discipline specific health, safety or ethical requirements to gain any unfair advantage in lab(s) or clinical assignments.

Failing to observe rules of academic integrity established by a faculty member for a particular course.

6. Attempting to commit an act prohibited by this Code. Any attempt to commit an act prohibited by these rules shall be subject to sanctions to the same extent as completed acts.

7. Assisting or attempting to assist another to violate this Code.

Classroom Behavior. This is a professional environment and I expect you to behave accordingly. Failure to do so will, at my discretion, result in a lower final grade for the class, in addition to the penalties described below. Students are expected to abide by the university's conduct policies (links above) and to be generally polite, respectful, and considerate of others. Disrespectful behavior includes side conversations, the use of cell phones or other electronic devices (unless specifically working on class related material, e.g. taking notes on your laptop) in the classroom during class hours, and rude emails. Please put your phones on vibrate or turn them off. If you are distracting me, the SL’s, or other students, you will get one warning. A second infraction will result in you being asked to leave and a getting a written warning that will be copied to the Dean of Students. Third time results in a Student Code of Conduct complaint, which you really don’t want. Step one may be skipped depending on the severity of the behavior. http://policy.arizona.edu/education-and-student-affairs/disruptive-behavior-instructional-setting.

Special Needs and Accommodations. Students who need special accommodation or services must register with the Disability Resources Center (DRC):

Disability Resources Center

1224 East Lowell Street, Tucson, AZ 85721

(520) 621-3268

FAX (520) 621-9423

e-mail: [email protected]

web: https://drc.arizona.edu/

You must also request that the DRC send official notification to your instructor of your accommodations needs as soon as possible. Please plan to meet with the instructor by appointment or during office hours to discuss accommodations and how the course requirements and activities may impact your ability to fully participate. The need for accommodations must be documented by the appropriate office.

Inclusive Excellence. This course supports elective gender pronoun use and self-identification; rosters indicating such choices will be updated throughout the semester, upon student request. As the course includes group work and in-class discussion, it is vitally important for us to create an educational environment of inclusion and mutual respect. Inclusive Excellence is a fundamental part of the University of Arizona’s strategic plan and culture. As part of this initiative, the institution embraces and practices diversity and inclusiveness. These values are expected, respected and welcomed in this course. Additional resources:

Office of Diversity (http://diversity.arizona.edu/)

http://www.health.arizona.edu/counseling-and-psych-services

https://www.health.arizona.edu/oasis-sexual-assault-and-trauma-services

Subject to Change Statement. Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.

ISTA Competencies.