COMP 180: Computing and Data Analysis for the Sciences

Syllabus

  • Day/Time: Mondays, Wednesdays, Fridays 9:20-10:10am, Spring 2019
  • Location: Lake Shore Campus, Crown Center Room 105
  • Instructor: Dr. Ting Xiao (txiao@luc.edu)
  • Office Hours: Tuesdays, Thursdays 9:20-10:10am, Doyle Center Room 206 or 309 (by appointment)
  • TAs: Zhihao Zhou (zzhou7@luc.edu), Charlotte Cornell (ccornell1@luc.edu)
  • Course materials: No textbook. All materials (readings, videos, tutorials, quizzes, and assignments) will be accessible online and posted on the course calendar on the respective class day at the latest.
  • Website: https://sites.google.com/view/comp-180


Context of the Course

This course is designed as a first introduction to computing for students interested in the physical or social sciences. Unlike the other introductory computer science courses (COMP 150 or 170), theoretical concepts and computing foundations which are useful to computer science students come secondary to more immediate, practical concerns in working with data. Also, as a likely terminal computing course, students are pushed to be self-sufficient in basic data analysis tasks. Daily instructed efforts will be task-oriented based on what is most useful to students. There will be brief code introductions given in the instructor’s chosen data analysis language, but for the majority of the tasks code will be made available in all three data analysis languages (Python, R, and Octave/Matlab). All data analysis environments chosen will employ a cell-based run/display-results cycle using Jupyter Notebooks. In the end, this course should prepare students to work in scientific research groups where automating the analysis of data sets for publication may be required.


Course Objectives

The goal of scientific computing is to leverage computational tools and techniques to advance our understanding of the world. Although preparing and automating the processing of data may not be necessary to understand the known concepts and insights from the study of biology, psychology, chemistry, and physics, it is a necessity to advance our understanding in these fields and build the tools and techniques of tomorrow. Scientific computing emphasizes data analysis and visualization in an applied scientific context - analyzing data quickly for understanding by the individual scientist, sharing automated workflows with collaborators, and preparing results for later publication. This course will emphasize rapid, interactive, and reproducible collaborative analysis of data for scientific contribution. At the end of this course, students will be well versed in the use of an interactive environment for data analysis (Python, R, or MATLAB), with an ability to manage the collection of data, create an automated processes for analysis, use collaborative tools, and rapidly report quantitative findings.


Unique Course Design Highlights

This is an application-oriented course. Reading materials and theory will be minimal. Code and code-based tutorials will be emphasized, as well as practice over theory, with assignments providing much of the content and expectations in the course. Students are encouraged to use search engines and given tips and techniques.

  • The instructor will emphasize a single language for brief, daily code walk through to help complete assignments - e.g. the first 10 minutes of each class.
  • Students have daily data analysis tasks as assignments.
  • Quizzes and exams are timed on the computer with online submission, and will resemble assignments in nature - practical rather than theoretical. This stresses the need to not just complete assignments but learn from them in ways that make you more efficient.
  • Students are encouraged to select one of the three data analysis languages (Python, R, or Octave/Matlab) early in the semester to specialize in. Student are free to switch languages at will, but will likely find it helpful to remain consistent. In each assignment, code and direction is available to complete the requested tasks. Some searching online is expected to solve assignments.


Assignments

Assignments are designed to engage you in your learning, so you can begin to apply these principles in practice and tailor them to your needs. This is a course meant to emphasize practice over principle so special emphasis is made to select assignments that forward the concepts in the course naturally, and evaluations will be more oriented to gauge your ability to apply what you learn in the field.

Assignments are generally due within a week after they are assigned (e.g., Monday assignments are due on Sunday; Friday assignments are due on the next Thursday). Results should be presentable, with appropriate comments for someone to follow what you have done. Assignments are to be turned in individually, although students are encouraged to work together extensively in all ways except direct copy/paste of individual work. Note, assignments will be given almost daily, and the bulk of the assignments should be attempted in class with help from other students and the instructor. To encourage in-class efforts and to provide precise feedback, completed assignments can be shown to the instructor or the TA in class before submitting to Sakai to guarantee full points. It is important to keep up given this pace of new assignments nearly daily. See the late policy below.

Project: After a few weeks into the course you will select among a small number of collaborative projects. Groups will be 2-3 people. This is your opportunity to demonstrate what you have learned in a way that reaches beyond this course assignments. The goal here is to create a coherent, completed analysis project for presentation towards the end of class. Essentially ask yourself what you would want to show an research lab or employer (or brag about to others) demonstrating what you have learned in the course. You are encouraged to reach out to people who may have data you could analyze on their behalf.

Late policy: If assignments or project work are turned in after the due date, this places an undue burden on the instructor and any TA, especially when this policy is abused. This is heightened given the pace of this course. In general, late assignments will not be accepted, though you are encouraged to discuss with the instructor if there are extenuating circumstances, in which case a point reduction is at the discretion of the instructor.


Quizzes and Exams

You will be evaluated in class in a manner similar to assignments - data analysis tasks using your computer, but under time pressure and without help from others. For this reason it is critical to not only complete assignments, but use the opportunity to become more efficient at data analysis tasks similar to your assignments. All quizzes and exams are due at the end of the class, with your analysis notebook (.ipynb file) submitted to Sakai - unless stated otherwise.

  • Quizzes: Quizzes will be weekly (generally on Wednesdays) and they will resemble assignments, but will be on a new data set with a slightly different request for tasks. Quizzes must be taken in the classroom. Time will be limited, and all work will be individual. You are strongly encouraged to attempt to solve the tasks iteratively and incrementally - write code that works first, but works poorly, and improve from there, rather than write perfect code top to bottom.
  • Final Exam: The final exam will be more thorough than the weekly analysis quiz-tasks, but will follow a similar style of emphasizing practical data analysis tasks using your computer rather than conceptual questions. The final exam is cumulative, but emphasis will be on the newer material. The final exam day is already posted and is considered fixed. Prior arrangements in all cases can be made without loss of points, but have to be discussed. The final exam cannot be missed without prior arrangements or later proof of extenuating circumstances.
  • Laptop policy: you are encouraged to bring your own laptop and configure your system appropriately to complete the assignments, even though machine will be available to you. Quizzes and exams will require a computer and you are encouraged to use the same machine for quizzes and exams as you use for assignments. However, a data analysis that fails due to hardware or software issues (e.g. not enough battery, OS freezes without saving, etc) are your responsibility and should be dealt with outside of class if this is expected. You will have at most one quiz that can be dismissed because of such an issue, and it will be replaced with the minimum score of your quizzes up to that point. Please try to anticipate potential issues with your hardware and act accordingly. This is a minimal expectation in any professional setting.


Grading

Grades are determined by a simple points system, with a total of at least 100 pts as the goal though more than 100 points are likely. The expected distribution of points is given below, with the exact scale determined by point values given for each assignment, quiz, or exam - this is subject to minor modification based on actual points given. Note, due to the nature of the course, exams and quizzes are the primary means of establishing your final grade, so please complete the assignments in a timely way and study appropriately prior to each quiz and exam.

  • Assignments: 28 pts (2 pts each)
  • Quizzes: 32 pts (weekly in-class analysis quizzes, 4 pts each)
  • Projects: 20 pts
    • Brainstorming - 1 pt
    • Proposal - 2 pts
    • Update - 2 pts
    • Presentation - 5 pts
    • Final Report - 5 pts
    • Group Self-Assessment - 5 pts
  • Final Exam: 20 pts

Grading Scale: 90, 80, 70, 60 with a ‘+/-’ if within 3 percent of the border. Points needed to get each grade: A=93.0, A-=90.0, B+=87.0, B=83.0, B-=80.0, C+=77.0, C=73.0, C-=70.0, D+=67.0, D=63.0, D-=60.0. Don’t expect this scale to change. If class grades are low (I expect the vast majority of students will get A’s and B’s), extra quizzes or assignments will be given to add points. (Note, these grades are based on points and not percentages, so if 120 points are given, you only need 93/120 to get an A)

Participation Policy: Attendance is not required except on quiz and exam days (which in this class will generally be on Wednesdays). There is no direct participation grading, but in the past there has been a strong correlation between engagement and accomplishment in courses - especially for those that are struggling with the material. Feel free to prioritize your time, but prioritize wisely.

Academic Dishonesty: You are free to discuss anything freely and openly that is not a quiz or exam, including looking at each other’s code, but you are NOT allowed to copy and paste or any thoughtless equivalent - if in doubt ask, or at least document your source clearly and explicitly. Cheating on assignments can result anywhere from a zero on the assignment to a zero for all assignments points for the course depending on the severity. Students caught cheating on quizzes or the final exam will receive an F for the course and the matter will be discussed with the appropriate dean.