CSC 234 Data Visualization
Syllabus
Instructor: Prof. Chris Fernandes
Email: fernandc@union.edu
Office Hours: TBA
or anytime my door's open!
Office: 219 Steinmetz Hall
Phone: 388-6401
Course Webpage: http://nexus.union.edu
Texts:
-
Jill Butler, Kritina Holden, William Lidwell,
Universal Principles of Design, Revised and Updated,
Rockport Publishers, Second Edition, 2010, ISBN-13: 978-1592535873.
Available at the bookstore.
-
Allen B. Downey,
Think Python: How to Think Like a Computer Scientist,
Green Tea Press. This book is free! Read it online
at
http://greenteapress.com/thinkpython2/html/index.html
Course Summary
We live in an age where there is a lot of data being produced. Whether it is mapping the human
genome, building a corpus of words from classical Greek texts, or recording each and every purchase
from a department store, there is a lot of data being stored.
The fields of engineering, medicine,
business, the social sciences, the sciences, and the humanities are all using
large sets of data to do research, find patterns, and make decisions.
This course is about using visual representations to
make sense out of all that data.
Good visualizations present a specific
interpretation of data which can ultimately improve comprehension,
communication, and decision making.
By the end of the course, you should be
proficient in the following:
- knowing the characteristics, strengths, and weaknesses of
the human visual system
- understanding good design practices for visualization
- practicing with Python packages and other tools for visualization
- collecting, scraping, and cleaning data for use in visualizations
- knowing how to critique, analyze, and evaluate visualizations
Prerequisite: C- or better in CSC-10X, or its equivalent.
Or permission of the instructor.
What is this course NOT?
For many of you, your experience with CS has been just a programming course or two.
But there's a lot more to CS than just programming, and so this course
might seem quite different to you. It'll be easier at the outset knowing that this course is
- NOT strictly a programming course. Yes, you'll be coding here,
but the point is not to introduce you to more programming constructs, but applying
what you already know.
- NOT a graphics course. Visualization does not mean learning OpenGL or
the equivalent to do open-ended 3D virtual reality renderings. In fact, the actual
*drawing* of our visualizations is something we'll let third-party packages
do for us. We're more concerned with the data processing and design of a visualization
than its implementation. You want graphics? Take CSC 385.
- NOT only computer-based. It's just as important for you to be able to
articulate why a visualization is good or bad as being able to create one. There will
be lots of opportunities for this, such as with oral and written critiques.
- NOT targeted at upper-level majors. This is a sophomore-level course
and will be treated as such. However, there will be plenty of opportunities for
extending what an assignment asks for or to explore a visualization tool on your own.
Take advantage of these to get the most out of this course.
Hardware/Software
You'll be using Google Colab for all
your projects, so as long as your computer has an Internet
connection, you're good to go. Alternatively, you can
use our CS lab machines in Olin 107, the Pasta Lab (ISEC 051), or the CS Resource
room (Steinmetz 209a).
Evaluation
- Quizzes. There are no midterms or final exam for
this course, but there will be occasional quizzes throughout the term
to make sure you keep up with the material. Quizzes are closed-book
and closed-notes.
- Projects. Programming
projects will be assigned throughout the term to reinforce
the concepts discussed in class. Projects are due at the
start
of class on the day it is due. You must share your Colab notebook with me
and upload a copy of your code to Nexus to turn your project in.
No lates will be accepted.
- Critiques. You will be doing
both oral and written critiques of visualizations during
class as you learn more about good design principles.
I will occasionally have you turn in your critiques
for credit.
- Final Project.
Instead of a final exam, there will be an extensive final visualization
project related to your major or minor. This will include a write-up and
an oral presentation during our normal final exam period. You are required
to be at the final presentations for the entire time.
- Voluntary Participation The quality of
visualizations can only be grasped through discussion, so this course
lives and dies on you getting involved. So speak out! You're the
only one who can bring your background and experience to the discussion.
Participation will be worth 50 points for the entire term, and you can
earn 5 points per week. You get 1 point for showing up to class, so you
can earn 3 out of 5 each week just from attendance. The other two points
must be earned by asking/answering questions and participating in discussion.
You can only get points for participating of your own free will. If I
call on you, it doesn't count.
Grading
- Quizzes: 20%
- Projects: 40%
- Critiques: 10%
- Participation: 10%
- Final Project: 20%
Academic Dishonesty
We have an honorcode and I trust y'all to follow it.
Read up on it at
http://honorcode.union.edu. All suspected
violations will be reported to the Honor Council chair and Dean
of Studies. You must include the following honor code affirmation
in the comments or prose of everything you hand in:
I affirm that I have carried out the attached academic endeavors with full academic honesty, in accordance with the Union College Honor Code and the course syllabus.
Here are some concrete things to avoid
(this is not a complete list):
-
Do not "work on the project together" with friends, especially if the group members
are each at your own computers and are always in lock step trying to figure out the same
line or section of code at the same time.
-
Do not give your
code to another person or receive code from another person -- EVER.
You might think that it's just helping out a friend, but it's still
plagiarism.
-
Do not even look at someone else's code unless it is to
give that other person help. For example, if someone asks you
to look at their code in order to understand an error message, that's fine.
If you are looking because you yourself don't know how to write something and
you need "inspiration", that's plagiarism.
Ok, so what should you do? Here are some tips:
-
Once you've struggled with something on your own and you're still getting nowhere, ask for help!
Email and visit me, go to the helpdesk, and, yes, ask your fellow students! They can't show
you code, but they can sure write down examples, show you demos, and explain things.
-
It's ok to write pseudocode together. Get the logic down in English. Then go off
by yourself and translate it to code.
-
It's ok to read and write code together that is not part of the assignment, but that
helps demonstrate the concept of what you're being
asked to do. Go through a class example together or maybe a demo. There's no better
way to understand something than trying to think up examples in order to teach it to someone else.
Try it!
It is ok to reuse code...
- that I hand out in class
- that is part of a demo that I leave on Nexus
- that is part of something you wrote in a previous project
It is NOT ok to reuse code...
- that is part of someone else's project
- that is from the Web/Internet. This includes ChatGPT and similar systems.
- that is in other textbooks
Here's the bottom line: except for the above, you have to write all the
code yourself, from scratch.
In all cases, you must explicitly cite any source
(like a web page tutorial or a helpdesk person) that you use to help
complete an assignment. Again, this is similar to writing an English
paper;
if you use a quote or material from someone else,
you have to give credit where credit is due. Otherwise you are
inappropriately plagiarizing or borrowing ideas. You do not have
to cite help from me.
What you need to do
To prepare for class, you are required to do the following:
Show up
You are expected to be present for every class and to record your attendance
on Nexus. However, I realize that
sometimes other things come up (interview, illness, etc.) so
just please let me know in advance by phone/email if you're going to
be absent. All absences
count as zero points for participation that day. If you miss class, get notes from someone
and do the readings before coming to see me. I'm happy to
explain things, but I won't repeat lectures for you.
Read any assigned readings
Our textbook is a great reference book of good design principles, and I'll
occasionally assign readings from it. However, I hope you pour
though it as much as I have -- it's a great book! There will also
be other readings that I hand out in class. Be sure to keep up with those
since more than likely, we'll be discussing it the next class period.
Check the webpage on Nexus
The reading assignments (and other announcements) will be
posted regularly on the course webpage. You are required
to check it at least once a week. I usually update it over the weekend.
Check your email twice a day
I know: it's old tech, but this school runs on email. I send out
a lot of tips, hints, announcements, error corrections, and
lecture addendums over email. Check it at least twice daily.
Stay focused
Part of your job is to stay engaged in class.
If you're using a laptop/tablet to take notes,
that's fine, but
class time is for class work. Using your computer for other things like
other classes' work, checking social media, reading email, or catching the latest ESPN
highlight video is not permitted. This policy extends to cell & smart phones too.
Phones should be in silent mode and out of sight (mine and yours).
Class goes by quick. Stay focused.
If you're done with an in-class exercise, don't allow yourself to get bored.
Extend the exercise. Or help out your neighbor.
Make backups
I always have at least one student each term who loses all of
his/her work due to a computer glitch or hard drive crash.
Don't let it be you. Make backups
of everything either by saving it on a USB flash drive or
emailing it to yourself.
Accommodations
For students with learning disabilities:
Union College facilitates the implementation of reasonable accommodations, including
resources and services, for students with disabilities, chronic medical conditions and temporary
disabilities resulting in difficulties accessing learning opportunities. All students needing services must
first register with Accommodative Services located in Schaffer Library rm 224. It is strongly recommended that
accommodations be requested within the first two weeks of the term. Last minute requests can be denied.
Any student with a documented learning disorder is welcome to
come talk to me privately about options for completion of quizzes and
homework assignments.
The Bottom Line
Ask questions and seek help. This is the most important
point of all. I live to answer questions. Don't be afraid to
come to my office every single day if you want. It's better
for everybody (you AND me) if you understand
things sooner rather than later. More often than not, there's
a line of people waiting to see me on the day before a project
is due. You'll get the help you need faster by starting on projects
sooner rather than waiting until the last minute.