CS107 / AC207:
Systems Development for Computational Science
Updates¶
- 2021-10-07: Updated lecture 10 slides (pdf) (correction of bullet 3 on slide 38)
- 2021-10-05: Updated lecture 9 slides (pdf) (added 2 notes in derivation of Newton's method)
- 2021-09-28: Updated lecture 7 slides (pdf) (correction on slide 22
A = A.__iadd__(B)
) - 2021-09-28: Updated lecture 7 slides (pdf) (added slides for open source licenses)
- 2021-09-14: Updated lecture 2 slides (pdf) (one slide for string quoting added)
- 2021-09-13: Pair-programming sections are now offered in-person
- 2021-09-09: Updated lecture 2 slides (pdf) due to wrong formatting
- 2021-09-03: Registration for
C/C++
mini-class is now open - 2021-08-18: Added page for
C/C++
mini-class
Welcome to CS107 / AC207¶
Computation has emerged as the third pillar of science alongside the pillars of theory and experiment. Computational science is maturing rapidly and has found considerable and significant use in supporting scientists from various disciplines (including all engineering disciplines, mathematics, physics, chemistry, finance, biology, and data analysis to name a few). Many burgeoning scientists are still taught to write "a code" for some problem and to debug when things look wrong. Given the ever-increasing complexity of software solutions to scientific problems, this old paradigm is no longer tenable and at best inefficient.
CS107/AC207 is an applications course highlighting the use of software engineering and computer science in solving scientific problems. You will learn the fundamentals of developing scientific software systems including abstract thinking, the handling of data, and assessment of computational approaches: all in the context of good software engineering practices.
Contact Information¶
Instructor:
- Fabian Wermelinger
- Email: fabianw@seas.harvard.edu
- Office: SEC Allston, 1.312-12
- Office Hours: Mondays, 10:30 - 11:30 AM
Teaching Fellows:
Fellow | Office Hours | Sections | |
---|---|---|---|
Sehaj Chawla (Head TF) | sehajchawla@g.harvard.edu | Wednesday 10:30am - 11:30am |
Fridays 4:00pm - 5:15pm |
Connor Capitolo | connorcapitolo@g.harvard.edu | Mondays 1:00pm - 2:00pm |
Fridays 11:00am - 12:15pm |
David Assaraf | davidassaraf@g.harvard.edu | Thursday 9:00am - 10:00am |
Thursdays 5:00pm - 6:15pm |
Erick Ruiz | eruiz@g.harvard.edu | Thursdays 6:00pm - 7:00pm |
Thursdays 10:30am - 11:45am |
Johnathan Jiang | johnathan_jiang@harvard.edu | Tuesdays 11:30am - 12:30pm |
Tuesdays 2:15pm - 3:30pm |
Sergey Litvinov | slitvinov@seas.harvard.edu | Fridays 10:00am - 11:00am |
|
Yang Xiang | yangxiang@fas.harvard.edu | Fridays 3:00pm - 4:00pm |
Wednesdays 5:15pm - 6:30pm |
Getting Help
cs107-sys-dev@lists.fas.harvard.edu
You can reach out to all of the teaching staff by sending your inquiry to the class mailing list above (only the teaching staff will receive your message).
Overview of Important Meeting Times¶
For specifics on course structure see: Course flow. The main structure is summarized below. All lectures are of 75 minutes duration.
Listed times are in sync with Boston (EST).
Lecture Hours
Lecture attendance is mandatory.
Day | Time | Room |
---|---|---|
Tuesday | 12:45 - 2:00 PM | SEC 1.321 |
Thursday | 12:45 - 2:00 PM | SEC 1.321 |
Pair-Programming Sections
Time given corresponds to starting time. Duration of a section is 75 minutes.
Attendance of one pair-programming session per week is mandatory.
The sections offered on zoom are to be prioritized by students who need to self-quarantine or are unable to attend in-person otherwise.
- Friday (start of pair-programming cycle with first section of the day)
- 11:00am - 12:15pm: SEC 6.412 (Connor)
- 4:00pm - 5:15pm: SEC LL2.224 (Sehaj)
- Tuesday
- 2:15pm - 3:30pm: SEC 1.402 (Johnathan)
- Wednesday
- 5:15pm - 6:30pm: SEC 1.413 (Yang)
- Thursday (end of pair-programming cycle with last section of the day)
- 10:30am - 11:45am: SEC 1.316 (Erick)
- 5:00pm - 6:15pm: David's Zoom (starting from: 09/23/2021)
Office Hours
Time given corresponds to starting time. Duration of office hours is 60 minutes. The times in the table below may be subject to change.
- Monday
- 10:30am - 11:30am: SEC 1.312-12 (Fabian)
- 1:00pm - 2:00pm: SEC 1.307 (Connor)
- Tuesday
- 11:30am - 12:30pm: SEC 2.123 (Johnathan)
- Wednesday
- 10:30am - 11:30am: SEC 1.316 (Sehaj)
- Thursday
- 9:00am - 10:00am: SEC 1.316 (David)
- 6:00pm - 7:00pm: Erick's Zoom
- Friday
- 10:00am - 11:00am: Sergey's Zoom
- 3:00pm - 4:00pm: SEC 6.412 (Yang)
Course Websites¶
Main course website: https://harvard-iacs.github.io/2021-CS107/
- Piazza: http://piazza.com/harvard/fall2021/cs107
- Your private GitHub Repo:
githubusername/cs107_<firstname>_<lastname>
- Please use all lowercase letters!
- Should contain the following directories:
homework/
lectures/
pair_programming/
- Canvas: https://canvas.harvard.edu/courses/92524
- Storing your course grade
Students Checklist¶
- Sign up for Piazza
- Sign up for GitHub
- Add the teaching staff Github user
cs107-sys-dev
as a collaborator on your course repository when you create it
- Add the teaching staff Github user
- Understand roles of main course sites:
- Canvas - Grades
- Piazza - All course announcements and discussions
- Github - All assignment submissions (homework, project, pair-programming exercises)
- Helpline
cs107-sys-dev@lists.fas.harvard.edu
- Homework re-grading requests
- Send them to
cs107-sys-dev@lists.fas.harvard.edu
. See Course Flow for the correct message format.
- Send them to
- OPTIONAL: you can get an Ubuntu
docker
container with the necessary tools for the class withdocker pull cs107sysdev/ubuntu
. Note that nossh
keys are contained in that image.