This course serves as an introduction to computer science (CS) and data science (DS). In it, you will learn about both as fields of study and work, you will learn computer programming as a fundamental skill (or an art, many would say) applied in both, and you will learn the basics of applying that skill to problems of data exploration and analysis. We will start by answering the questions "What is computer science?", "What are computers?", "What is data science?", and, most importantly, "How can we solve problems with them?"
Programming is a fundamental part of CS and DS, and we will spend a great deal of time learning how to program. We'll start with a simple one-line program and work towards incorporating many of the tools and techniques that allow people to create complex, valuable code like operating systems, video games, and search engines (but we won't quite be ready to make those, yet). We will apply programming to learning about and answering questions about data, which are some of the core activities of data science. And we will be programming using the Python language in Jupyter notebooks, one of the most common programming environments for practicing data scientists today.
Upon completing this course, you will have a good understanding of what CS and DS are, including the diverse branches of study and practice contained within both; you will be comfortable working in a Jupyter notebook programming environment; you will understand the fundamental concepts and constructs of programming; and you will be able to complete simple projects following a standard data science workflow. Overall, you will be able to write programs that make a computer do what you want it to do, giving you a much greater degree of control over it than you had previously, and you will know how to apply that skill to processing and learning from data. Of course, you will also be well prepared to continue on to other courses in computer science, in data science, or in other areas that involve programming.
For an idea of the specific topics covered in the course, see the schedule for the semester.
Semester schedule — tentative - see the Moodle site for up-to-date details.
Moodle — assignments, quizzes, announcements, and other online resources will be here.
Programming grading rubric — describes how programming assignments will be graded.
Advice from past students — See what students who took a similar course previously have had to say about it. (Common suggestions: start the assignments early, go to office hours.)
We will provide free online resources for all content in the course. No purchase is required.
If anyone would still like to purchase a physical textbook as an additional resource, then for the CS and Python programming aspects of the course only (it doesn't cover data science) we recommend:
Title | Python Programming: An Introduction to Computer Science (Third Edition) |
---|---|
Author | John Zelle |
ISBN | 978-1590282755 |
Ebook | Available from RedShelf |
The final grade will be based on the following breakdown:
Reading Responses | 10% |
Assignments | 15% |
Quiz 1 | 5% |
Exam 1 | 20% |
Exam 2 | 25% |
Project | 20% |
Engagement | 5% |
Much of this class will be taught in a "flipped" style, meaning you will be responsible for your initial exposure to learning new material outside of class, and time in class will be spent on exercises and activities that will strengthen the understanding you bring to class. A set of questions will be assigned to be answered before most classes. These questions will invite your reaction to the assigned material and check your understanding of it. Your answers will help us tailor our time in class to your needs.
Answering these questions before the next class is critical, and so responses will not be accepted after the assigned deadline. They will be graded based on both understanding and effort. If you cannot solve a given problem or answer a given question, write a few sentences describing your understanding of it and where you are stuck. We may assign extra credit for exceptional responses. Late submissions will not be allowed. The two lowest scores will be dropped.
Assignments will be posted on the course's Moodle site, and instructions will be provided for submitting your work electronically. Your lowest assignment score will be dropped.
Assignments will be due at set times; they will be considered late at any point after that time. An assignment will lose 10% of the total possible points for every day it is late, and after five days it will not be accepted.
Assignments can't be accepted at all after solutions have been handed out or the graded work has been returned to the class.
There will be one quiz and two exams during the semester. They will be held in class. The quiz and first exam will cover all material until that point in the semester, and the second exam will primarily focus on the material seen since the first exam. Dates for the quiz and both exams are set and are listed in the schedule.
If you would like to request a regrade, submit a request in writing (via email) within one week of receiving the graded assignment, exam, etc. Indicate exactly which part you believe deserves a different score and why.
Class time will be complementary to the reading, and you will need both in order to learn all of the material in this class. Furthermore, each student benefits from the engagement of all others in the class. Five percent of your final grade will be based on that engagement. Attending every class period on time and prepared is the base level expected of everyone. Higher engagement involves constructive participation, in class or out, such as asking questions, answering them, responding on Piazza, sharing insights or useful/interesting resources with the class (posting on Piazza, for example), investigating concepts beyond the requirement in class, working on small independent learning projects, etc. The score can be reduced by excessive (more than 3) unexcused absences, disrupting class (e.g., regularly showing up late), dominating the conversation, and other detrimental actions.
Absences can be excused with documentation from health services or the Dean of Students' office, or if arrangements are made with an instructor more than a week in advance. In general, if you know you will be missing a class, let us know as soon as you can.
We strongly encourage you to form study groups with your classmates, compare notes, explain concepts to one another, and generally help each other learn the material in this course.
You may discuss assignments with other people, but anything you turn in for a grade needs to reflect your own understanding. For every assignment, you should write a brief statement at the beginning indicating who you collaborated with and what help each person provided (e.g., if one person explained a particular idea to everyone else). Simply copying answers and giving away solutions are not allowed. The following show an example of collaborating badly and the same example changed slightly to become good collaboration:
BAD:
Jane: "Oh! We need to use all three variables in the conditional. It's going to look like this..."
Jim: "I have no idea what you're talking about, but I'll write it down."
GOOD:
Jane: "Oh! We need to use all three variables in the conditional. It's going to look like this..."
Jim: "I have no idea what you're talking about. Could you explain that some more?"
Try to follow this rule of thumb: No matter what help you received figuring out the concepts involved, when you turn something in you should be able to reproduce the whole thing, working through the assignment again, without any outside help. If you can't, you will have trouble on quizzes, exams, and later assignments.
For details on the university's policies regarding academic honesty, please read the sections of the student handbook on conduct, cheating, and plagiarism here. Cheating of any form can result in failing the course and a report to the associate provost.
If you anticipate or experience academic barriers based on a disability (including mental health and chronic or temporary medical conditions), please register with Disability Services. Once that is done, please make arrangements to meet with one of us and discuss any accommodations.
Our university's mission statement includes, "The University through our policies, programs and practices is committed to diversity [...]" Our school and this course are made stronger by the mix of people that come into it bringing a diversity of ideas, experiences, and backgrounds. I expect everyone in this course — instructor, TA, and student — to contribute to an inclusive atmosphere that respects the diversity of all others in it. Dimensions of diversity can include sex, race, age, national origin, ethnicity, gender identity and expression, intellectual and physical ability, sexual orientation, income, faith and non-faith perspectives, socio-economic class, political ideology, education, primary language, family status, military experience, cognitive style, and communication style. The individual intersection of these experiences and characteristics must be valued in our community.
[adapted from UCF FCTL]
Come to office hours. If there is one thing we wish we had done more during our undergraduate educations, that's it. (But don't just take our word for it; previous students say coming to office hours helped them with the hard parts of learning how to program.) If something in class or in the book isn't clear, the one-on-one interaction of office hours is often the best way to work it out. Office hours are an important extension of the class sessions, which won't always be sufficient by themselves. In general, the more we interact, and not just in the classroom, the better the semester will be.