Systems Development for Computational Science
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.
The class syllabus can be found by following this link.
Teaching Staff
The preferred way to reach the teaching staff is described in the Teaching Staff Mailing List section below.
Instructor
- Ignacio Becker (iebecker@g.harvard.edu)
- Office: SEC, Office 1.312-05
- Office Hours:
- Wed 5:00-6:00pm
Teaching Fellows
Fellow | Office Hours | Pair-Programming Sections | |
---|---|---|---|
Kimon Vogt | kvogt@g.harvard.edu | Sat 8:00-10:00am (Zoom) | Mon 8:00-9:15am (Zoom) Fri 8:00-9:15am (Zoom) |
Yixian Gan | ygan@g.harvard.edu | Tue 5:00-6:00pm (SEC 6.301+6.302) | Mon 6:00-7:15pm (SEC 6.301+6.302) |
Allison Karp | akarp@mde.harvard.edu | Thu 9:30-10:30am (SEC 6.301,6.302) | Tue 9:30-10:45am (SEC 6.301+6.302) |
Gekai Liao | gekailiao@g.harvard.edu | Thu 4:00-5:00pm (MD PierceHall 100F) | Tue 3:45-5:00pm (SEC 6.301+6.302) |
Victor Zhu | dunminzhu@g.harvard.edu | Mon 10:00-11:00am (Zoom) | Thu 6:00-7:15pm (Zoom) |
Frank Cheng | xcheng@g.harvard.edu | Fri 4:00-5:00pm (SEC 2.122+2.123) | Thu 1:00-2:15pm (SEC 2.122+2.123) |
Danni Lai | danninglai@g.harvard.edu | Wed 4:00-5:00pm (Zoom) | Tue 7:00-8:15pm (Zoom) |
Isabella Bossa | isabellabossa@g.harvard.edu | Tue 10:45-11:45am (MD 223) | Thu 8:00-9:15am (MD 123) |
Tanner Marsh | tam997@g.harvard.edu | Fri 10:00-11:00am (SEC 2.112) | Thu 1:00-2:15pm (SEC 2.122+2.123) |
Boxiang Wang | bwang@g.harvard.edu | Mon 1:00-2:00pm (SEC 6.301+6.302) | Thu 3:45-5:00pm (SEC 4.405) |
Shuheng Liu | shuheng_liu@g.harvard.edu | Mon 7:00-8:00pm (Zoom) | Tue 7:00-8:15pm (Zoom) |
Cyrus Asgari | cyrusasgari@college.harvard.edu | Wed 3:00-4:00pm (MD 123) | Fri 12:00-1:15pm (SEC 2.122+2.123) |
Haitian Liu | hliu3@g.harvard.edu | Fri 2:45-3:45pm (SEC 2.122+2.123) | Fri 1:30-2:45pm (SEC 2.122+2.123) |
Legend:
- SEC: Science and Engineering Complex, Northwestern Av 150, Allston
- MD: Maxwell-Dworkin, Cambridge
Please see Pages section in Canvas for a Google Calendar.
Lecture Hours
All lectures are of 75 minutes duration. Time is given in Eastern Standard Time (Boston).
Lecture attendance is mandatory:
Time Room Tuesday 2:15 - 3:30 PM SEC 1.321 Thursday 2:15 - 3:30 PM SEC 1.321
Important Information
- Canvas: Is used for posting grades and other sensitive content. The class can be found on Canvas at this link https://canvas.harvard.edu/courses/122565
- Class
git
repository: All handouts in CS107/AC207 are provided through themain
repository hosted in the CS107 organization at https://code.harvard.edu/CS107/main. You can set this repository as an upstream in your private class repository or clone it once you have joined the CS107 organization
git clone git@code.harvard.edu:CS107/main.git
Updates to the main
repository are posted on the class mailing list. Your
Harvard ID is required to login to https://code.harvard.edu. You can request
membership in the CS107 organization (AC207 students join the CS107
organization as well) by sending an email to
cs107-staff@g.harvard.edu
(using your .harvard.edu
email). You
must include your
NetID
in the body of your email, which is also your https://code.harvard.edu
username (something similar to abc123
).
Once you have been added to the CS107 organization, create your own private repository inside the organization. Your private repository must have the exact name as your NetID. This will be your private class repository where you submit your homework and pair-programming exercises.
See the following tutorial to help you get started with your
git
repository:
Class Discussion Forum
We will use the Ed Discussion forum on our Canvas page as our main communication platform. Questions regarding homework, labs or lecture material must be posted on this forum and you are encouraged to reply to questions if you know the answer or you can share a useful contribution. A fraction of your participation grade is computed by how often you visit and the frequency you post on the forum.
Class Mailing List
You can optionally sign up to our class mailing list if you would like to be
notified whenever there is new class content available in the class git
repository. Replies to posts in this list will be sent to all list members.
To sign up, send an email to:
cs107+subscribe@g.harvard.edu
(subscribe by sending a blank email to this address; use the email address associated with your HarvardID)
You are required to confirm your subscription. Simply reply to the confirmation email with a blank message to complete the subscription.
Teaching Staff Mailing List
You can reach the teaching staff directly by sending your email to the following mailing list
cs107-staff@g.harvard.edu
(email sent to this list is only seen by the teaching staff; only email ending with.harvard.edu
is accepted)
You are not required to register for this mailing list but only email
addresses ending with .harvard.edu
are accepted (you will receive a rejection
message otherwise).
Getting Started Checklist
- Sign up with the CS107 organization on https://code.harvard.edu/CS107 and create your own private repository inside the organization.
- Information flow:
- Canvas → Grades and discussion forum
- https://code.harvard.edu/CS107
- Assignment submissions inside your private repository (homework, pair-programming exercises)
- Group repositories for project work
- All course handouts are published in the https://code.harvard.edu/CS107/main repository
- Need help? →
cs107-staff@g.harvard.edu
- OPTIONAL:
- Sign up on the class mailing list to receive push notifications when new content is available in the https://code.harvard.edu/CS107/main class repository.
- You can get an Ubuntu
docker
container with the necessary class tools bydocker pull iacs/cs107_ubuntu
. Note that nossh
keys are contained in that image for use withgit
. See also the docker resources page.