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.
see Resources page.
Online Discussion Forum
We’ll be using Piazza as our online forum.
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 at Schedule.
Lab is compulsory.
There will be a homework every week with a maximum of 3 questions. This homework should not take more than 7-8 hours. There will be 11 short format homeworks. These are to be submitted as jupyter notebooks. You can talk with any other student to do your homework, and students are encouraged to collaborate in upto groups of 3 for the homework (collaborators should submit 1 homework only).
There will be one paper, towards the end of this course. It will require reading and presenting a recent research development in the field.
At the end of the semester there will be a take home exam, which will be about 1.5 long format homework long. You will have >=10 days to finish it. To be submitted as a jupyter notebook. You will do the exam by yourself!
Coming to class. Piazza, with weight given to answering other’s questions. Pull requests with examples and errata on wiki pages would be appreciated, and will be used to push you up to the next highest grade. (Think of it as building a learning community)
Everything will be graded holistically beyond mechanical correctness and focusing on the overall quality of the work.
On a five point scale, roughly:
- A+ = You should be a teaching fellow
- A = Excellent
- A- = Quite Good
- B+ = Fair
- B = Did not work hard/Did not understand
In addition to the scores the Teaching Fellows will give detailed written feedback.
“You can talk to anyone and collaborate with up-to two additional people on any homework”
What does this mean, exactly?
- You can talk to anyone as long as you write your own work for anything you plan on submitting
- You can turn in 1 problem set amongst upto 3 collaborators if you mention ALL names on that homework.
- Attribution is key!! Anything that you “borrow” from someone/someplace else please make sure to attribute!!!
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.
Deadlines and Late Days
Homework must be turned in on time. You can have upto 7 late days across the semester, with no more than 1 late day on any homework. (That is you could be late by at most 1 day on at most 7 homework submissions). No late days on the final exam.
Homework will be due by 10am on the Friday the week after the thursday the homework was released.
Exceptions: Nada. No exceptions, except for illness, with a doctor’s certificate.
If you think we were too harsh, please ask for a regrade within a day of getting your grade.
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.
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.
We expect you to write high-quality and readable python 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 reasonably document your code.