Policies

Course Logistics

Prerequisites

Programming knowledge, in Python at the level of CS50 and CS 109 (or above). Besides this, you should have interest or investment in scientific computing.

Required Textbook

see Resources page.

Online Discussion Forum

We'll be using Piazza as our online forum.

Course Components

Lectures and Labs

The class meets twice a week for lectures (Monday And Wednesday) and Friday for labs. The labs are designed to help you master the relevant materials, and to start work on your homework in groups, and to even make progress on your project. The weekly schedule is posted on the course web site.

Lab is compulsory.

Project

You will work on a semester-long time series analysis, website, and database project. The goal of the project is to go through the complete software engineering process. You will work closely with other classmates in a 4-5 person project team. A portion of this project will be specified, and is common to all to all groups. But you will have to implement additional algorithms and database features of your choice (discussed with us) throughout and especially towards the end of the semester.

Course Policies

Assessment Procedure

See the Coursework and Grading page

Everything will be graded holistically beyond mechanical correctness and focusing on the overall quality of the work.

On a ten point scale, roughly:

  • 9 = Excellent
  • 7 = Good
  • 4 = Fair
  • 2 = Poor
  • 0 = Did not participate / did not hand in

Teaching Fellows will evaluate your work holistically beyond mechanical correctness and focus on the overall quality of the work.

In addition to the scores the Teaching Fellows will give detailed written feedback.

Project Group Peer Assessment

In the professional world, three important features affect your productivity and success: your own effort, the effort of people you depend on, and the way you work together. For this reason we have chosen a team-based approach that values all three of those features. After the team-based project you will provide an assessment of the contributions of the members of your team, including yourself. Your teammates' assessment of your contributions and the accuracy of your self-assessment will be considered as part of your overall course evaluation.

Collaboration Policy

You can collaborate within a group on EVERYTHING. Collaboration outside of the group on code is prohibited, unless it is being done for code review.

Quoting Sources

You must acknowledge any source code that was not written by you by mentioning the original author(s) directly in your source code (comment or header). You can also acknowledge sources in a README.txt file if you used whole classes or libraries. Do not remove any original copyright notices and headers. However, you are encouraged to use libraries, unless explicitly stated otherwise! You may use examples you find on the web as a starting point, provided its license allows you to re-use it. You must quote the source using proper citations (author, year, title, time accessed, URL) both in the source code and in any publicly visible material. You may not use existing complex combinations or large examples. For example, you may not use a ready to use multiple linked view visualization. You may use parts out of such examples. To support your learning about academic citation rules, please visit the Harvard Extension School Tips to Avoid Plagiarism, where you'll find links to the Harvard Guide to Using Sources and two, free, online 15-minute tutorials to test your knowledge of academic citation policy. The tutorials are anonymous open-learning tools.

Lab Deadlines and Late Days

Homework and Project must be turned in on time, including the project-based labs.

Eceptions: Nada. No exceptions, except for illness, with a doctor's certificate.

Regrading Policy

Some homeworks will be randomly graded. You will only know after the fact, which ones these were. If you think we were too harsh, please ask for a regrade within a day of getting your grade.

Guest Lecture Attendance

We are lucky to have some of the world\'s best researchers take time out of their busy schedules to give guest lectures. We expect all students to attend these lectures in person and to engage the speakers with questions and comments. You must send an email to the staff at least one day before a guest lecture to be excused.

Additional Information

Accessibility

If you have a documented disability (physical or cognitive) that may impair your ability to complete assignments or otherwise participate in the course and satisfy course criteria, please meet with us at your earliest convenience to identify, discuss, and document any feasible instructional modifications or accommodations. You should also contact the Accessible Education Office to request an official letter outlining authorized accommodations. The Extension School is committed to providing an accessible academic community. The Disability Services Office offers a variety of accommodations and services to students with documented disabilities. Please visit this webpage for more information.

Credits

A lot of the material in this course is based on other classes. We have also heavily drawn on materials and examples found online and tried our best to give credit by linking to the original source. Please contact us if you find materials where the credit is missing or that you would rather have removed.

Code

We expect you to write high-quality and readable, tested Python and C code. You should strive for doing things the right way and think about aspects such as reusability, error handling, etc. We also expect you to document your code.

Project Website

You will create a public website for your project, with a link to a demo of the project, documentation, and some REST API results. The web site should effectively summarize the main results of your project.

Peer Assessment

It is important to provide positive feedback to people who truly worked hard for the good of the team and to also make suggestions to those you perceived not to be working as effectively on team tasks. We ask you to provide an honest assessment of the contributions of the members of your team, including yourself. The feedback you provide should reflect your judgment of each team member's:

  • Preparation: were they prepared during team meetings?

  • Contribution: did they contribute productively to the team discussion and work?

  • Respect for others' ideas: did they encourage others to contribute their ideas?

  • Flexibility: were they flexible when disagreements occurred?

Your teammate's assessment of your contributions and the accuracy of your self-assessment will be considered as part of your overall project score.

Grading Criteria for project

  • Project Scope - Did you choose the appropriate complexity and level of difficulty of your project?

  • Implementation - What is the quality of your code? Is it appropriately polished, robust, and reliable?

  • Peer Evaluations - Your individual project score will also be influenced by your peer evaluations.