CSCI 127: The Joy and Beauty of Data
Logistics
Catalog Description
- Credits: 4
- Prerequisites: CSCI 107, The Joy and Beauty of Computing OR
prior computer science experience
- Corequisites: M 151
- Description: Provides a gentle introduction to the exciting world of
big data and data science. Students expand their ability to solve
problems with Python by learning to deploy
lists, files, dictionaries and object-oriented programming.
Data science libraries are introduced that enable data to be
manipulated and displayed.
Resources
Ryan's Overview Materials
Course Description
- Students will extend computational thinking skills
learned in The Joy and Beauty of Computing.
- Students will expand their abilities to program in Python using
the online resource How to Think Like a Computer Scientist.
- Students will be introduced to
data science
and learn why it is important in today's world.
- A typical day will include a short introduction to a topic,
followed by students learning about the topic on computers.
- Students will be evaluated based on programming assignments
and in-class exams (practicums).
- Guests from the computing industry and data science industry
will occasionally visit class.
- Students will gain in-demand skills
that better enable them to work or continue their studies in
the areas of computer science and/or data science.
Course Outcomes
At the end of the course, students should be able to
- Be introduced to the broad area of data science and its relevance.
- Utilize arrays, lists, files and dictionaries to solve problems in Python.
- Utilize fundamental object oriented principles such as classes,
objects, methods and inheritance to solve problems in Python.
- Utilize data science libraries to solve data science problems in Python.
Syllabus Topic Details
- Lists: introduction, values, length, accessing elements, membership,
concatenation, repetition, slices, mutability, deletion, references,
aliases, cloning, methods, append, for loops, lists as parameters,
comprehensions, nested lists, strings vs. lists, type conversion,
tuples
- Files: working with data files, finding a file, reading a file,
iterating over lines in a file, alternative file reading methods,
writing files
- Dictionaries: introduction, operations, methods, aliasing, copying,
sparse matrices
- Object Oriented Basics: object-oriented programming, changing perspective,
user defined classes, constructors, methods, objects as arguments,
converting an object to a string
- More Object Orientation: fractions, mutability, sameness,
arithmetic methods
- Modules: NumPy, SciPy, pandas, matplotlib, scikit-learn
Graded Items
- Practicum 1 - 15%
- Practicum 2 - 15%
- Practicum 3 - 20%
- Python Assignments - 50% (equally weighted)
Grading Policy
At the end of the semester, grades will be determined
(after any curving takes place) based on your class average as follows:
- 93+: A
- 90+: A-
- 87+: B+
- 83+: B
- 80+: B-
- 77+: C+
- 73+: C
- 70+: C-
- 67+: D+
- 63: D
- 60: D-
General Information
- Time: 2:45 p.m. - 3:35 p.m.
- Room: N-202
Instructor
Course Assistants
- Ryan Bockmon
- Alex Huleatt
Last modified: April 3, 2017.