Course Syllabus
Course Description
Welcome to INFO 201, Technical Foundations of Informatics! This course introduces fundamental tools and technologies necessary to transform data into knowledge. We'll cover skill associated with each component of the information lifecycle, including the collection, storage, analysis, and visualization of data. Core competencies underlying this process, including functional programming, use of databases, data wrangling, version control, and command line proficiency, are acquired through real-world data-driven assignments. After finishing this course, you'll be ready to apply these data skills to your field of interest, or pursue higher level Informatics courses.
Required Course Materials
This course makes significant use of the following textbook (which was written specifically for this course):
Freeman and Ross. Programming Skills for Data Science. Pearson. 2018.
You can access the book online for free using your UW NetID through SafariBooksOnline. You should bookmark this page, and read each assigned chapter in advance of discussing the topic.
Optionally, the book is also available in print from InformIT, Pearson, Amazon, or a local bookstore.
Course Structure
Lecture & Lab Time
Class time and lab time are designed to be fun and interactive environments for students to engage with both the material and one another. We will follow a mixed lecture/exercise format that allows students to experiment with techniques as they are introduced. It is an expectation that students are present and actively engaged in these activities, and assist their classmates when appropriate.
Textbook and Readings
As with all courses in the Informatics program, this course has a high expectation of independent learning. While core concepts will be reviewed in lecture and lab, you will be responsible for mastering many technical skills on your own. The best resource for this self-education is the course textbook (with accompanying exercises). This book was written explicitly for this course, and covers all of the necessary foundational sills to succeed in this course (and then some!)
Course book readings are required in advance of discussing the topic to ensure that we make the best use of class time. Not all topics will be directly addressed in lecture. Exercises will often be completed together in class (though you may need to review them outside of lecture). You will need to submit completed exercise work each week, so be sure to come to class and practice! You are responsible for making sure you have the technical abilities you need to complete your assignments.
One of the best was to succeed in this course is to do the reading!
Assignments
Students will complete a series of weekly assignments that give them a chance to practice and master programming skills, and to assess their progress through the course. Assignments will be a mix of focus on programming specific skills (e.g., language and syntax) and more theory-driven data analysis. We'll work with real-world data in this course, and students will be expected to use their programming skills to answer questions using those datasets. At the end of the course, students will complete a group project in which they take a deep dive into a dataset of their choice.
Because of the ever-changing nature of data-focused software, the purpose of this course is for students to learn how to teach themselves new tools (rather than just learning a pre-defined set of skills). Students will need to develop a deep understanding of the content and be able to apply concepts in new ways. Thus assignments will require students to use concepts and skills in ways that may not be explicitly discussed during lecture.
Find complete assignment details and due dates on the Assignments page.
Correspondence
The primary form of communication for this course will be our
Microsoft Teams group. Teams is a messaging platform that provides a chat application with rich formatting, direct or group messages, and (mostly) cross-device notifications. You will need to join the Teams group here (with code 2p9jb8z
). The best way to get questions answered will be on Teams, either by posting a general question to the whole class, or by direct messaging the TAs for 1:1 help. Note however that you should not expect immediate assistance, particularly on evenings and weekends—give us time to get to and focus on your question!
We will send out official course announcements via Teams, so make sure you have signed up (and make sure your notifications are set up)! If you need any help using Teams, please let us know. You can also view a quick demo or get official help.
Official office hoursare listed are listed on the home page. but if my door is open then I am more than happy to talk about any questions or concerns you may have about the course or its material. We can also schedule a specific time to chat that works better for you.
Don't be shy; we are here to help!
Class Attendance
Make every effort to attend each class meeting (including lab sections!). Class will begin and (usually) end on time. Please do your best to get to class before the start of the session. Students are expected to attend all meetings, with exceptions permitted in case of illness and family emergencies.
Please silence all cell phones/pagers/etc. before the beginning of each class. You should bring your laptop for in-class work (the iSchool also has a few laptops that can be loaned out for the quarter), but please don't use class time (lecture or lab) to check your email, update your Facebook, watch YouTube, make dank memes, seize the means of production (allowed), etc. Such usage is distracting and interferes with learning both for you and for all the other students around you. Spend class time on class materials. If another student's activity is distracting, please ask them to stop it (or let us know outside of class).
Grading
Your grade in this course will depend on your completing the assignments thoroughly and on time, as well as participating in and completing lab and lecture activities.
Final grades are determined based on the iSchool Standard Grading Scheme. I urge everyone to focus not on the grade itself but on learning what's necessary to earn high scores; the grades will follow from that.
Any questions about assignment scoring should be brought to your TA within 1 week of the assignment being returned. You can request to have a submitted assignment regraded—however, the new grade will used even if it ends up being lower!
Late Assignments
Late assignments will lose 5% per 24-hour period they are late, capped at a 20% penalty. Thus after 4 days, students may receive a maximum of up to 80% of the points possible on an assignment. However, late penalties will not lower an assignment score below 80% of the points possible.
Additionally, each student also has three (3) "late days" that can be used for "no questions asked" extensions on assignments. Late days are spent in 24h increments. Group assignments require one late day per group member for each 24h used. Lab and participation activities will not be accepted late and cannot be extended with late days. We will track late days for you; you don't need to let us know that you are using one in advance or anything.
Resources & Accommodations
A number of challenges from a variety of directions can affect your ability to bring your optimal attention and energy to a course. Student Resources is a set of links to campus resources that UW makes available to students in trying to mitigate and cope with some of these challenges. This includes disability accommodations, physical and mental health, and community connections among others. If you are having any difficulties, please contact your academic advisor for support, or Health & Wellness at http://livewill.uw.edu. Furthermore, please notify the professor if you are comfortable in doing so. This will enable me to provide any resources that I may possess.
Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Faculty Syllabus Guidelines and Resources. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form available at https://registrar.washington.edu/students/religious-accommodations-request/
I encourage all students having difficulty, whatever the reason, to consult privately with me at any time.
Academic Conduct
The standard iSchool and UW academic policies that apply to all of our courses, apply here as well.
Diverse backgrounds, embodiments, and experiences are essential to the critical thinking endeavor at the heart of higher education. We expect you to be respectful of the many social and cultural differences among us, which may include, but are not limited to: age, cultural background, disability, ethnicity, family status, gender identity and presentation, citizenship and immigration status, national origin, race, religious and political beliefs, sex, sexual orientation, socioeconomic status, and veteran status. Please talk with me right away if you experience disrespect in this class—from any source (including teaching staff)—and I will actively work to address it.
Collaboration
In the iSchool, we want to achieve a collaborative and supportive environment. The goal of this course is to learn the material—to be able to programmatically work with data on your own. You are encouraged to utilize available resources, including your classmates, to learn these skills. Permissable and encouraged forms of collaboration include:
- Asking a friend to explain a general concept or problem solving approach (without looking at code!)
- Working through practice exercises together
- Posting an error message to the general Slack channel to ask for help
- Asking people to share publicly available resources that help solve a problem
- Sharing your code privately with your TA or instructor to ask for more involved help
However, to ensure the primary goal of having students learn the material, we need to put some strict limitations around types of collaboration that can occur. The following forms of collaboration are explicitly not allowed:
- Your code must NEVER appear on another student's screen or computer, in any format. This includes in a web browser, as an image or screenshot, saved to a file on their harddrive, found in an email under their account, etc. And similarly, no other student's code should ever be on your screen!
- You must NEVER submit code that someone else wrote—whether that person is another student or someone who posted something on the web. This includes copying or adapting assignments from previous quarters. All work submitted must be your own.
You can discuss problems and even work through solutions together, but the final product (the code you create and submit) should come from your own brain and your own hands.
The point of assignments is for you to learn to complete them. This includes the entire process of getting the solution—including the false starts, bugs, misconceptions, and mistakes—because the learning occurs in the doing. Completely apart from the ethical issues, copying a solution without understanding it deprives you of the whole point of the assignment, and frankly is a waste of your time.
Code Reuse
Although professional developers often reuse solutions they find on the web, they also take the time to understand what that code is doing, customize it to their specific context, and cite the source so that they can find it again later. They "make it their own". If you want to use a snippet of code you find on the web, you MUST do the following:
- Include a reference to where you found the code (a URL in a comment is fine). Including more than a line or two of un-cited code, or otherwise failing to give appropriate credit, is a form of plagiarism and so is considered cheating.
- Take the time to understand why and how the code works (otherwise you aren't actually learning anything!). Adding detailed comments explaining what the code does in your own words is a good way to demonstrate that you actually understand it.
- Make the code your own; do not just copy and paste it directly into your project. Choose exactly what pieces of the sample are necessary for your work (you usually don't need everything). Adjust variable and function names so they are appropriate for your work. Ensure that the code matches the style and usage guidelines required for the class
This course is about learning to perform data programming; you won't learn anything from just copying other people's work. It's fine to learn from other sources, just be honest about it.
Academic Honesty
The consequences of academic dishonesty are not worth the risks. The simple rule is: do not claim anyone else's work, code, words, or ideas as your own. If you're in doubt, come talk to me in advance.
If we determine that you violated the collaboration policy and plagiarized code, you will get an automatic zero on the assignment, and we will file an academic misconduct report with the Associate Dean of Academics. Note that both students will be considered to be at fault in the case of unauthorized code sharing.
If you're having problems in the course, come and speak with me; never take the shortcut of copying someone else's work. It isn't worth it.
Course Summary:
Date | Details | Due |
---|---|---|