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.

Updates

Teaching Staff

The preferred way to reach the teaching staff is described in the Teaching Staff Mailing List section below.

Instructor

Teaching Fellows

Fellow Email Office Hours Pair-Programming Sections
Chenhui (Lucy) Li chenhuili@g.harvard.edu Fri 1:00-2:00pm (SEC 1.307) Fri 10:30-11:45am (SEC 1.307)
Connor Capitolo connorcapitolo@g.harvard.edu Wed 8:00-9:00am (SEC 1.316) Thu 8:00-9:15am (SEC 1.307)
Geoffrey Liu geoffreyliu@fas.harvard.edu Mon 6:30-7:30pm (SEC 1.316) Mon 5:00-6:15pm (SEC 1.307)
Haochen Yang hcyang@fas.harvard.edu Tue 5:00-6:00pm (SEC 1.316)
Fri 7:00-8:00pm (MD 323)
Tue 3:45-5:00pm (SEC LL2.224)
Thu 6:00-7:15pm (MD 119)
Jean-Guillaume (JG) Brasier jbrasier@g.harvard.edu Mon 2:30-3:30pm (MD 323) Mon 1:00-2:15pm (MD 323)
Kimon Vogt kvogt@g.harvard.edu Fri 5:00-6:00pm (MD 221) Fri 6:00-7:15pm (MD 221)
Lars Ankile larsankile@g.harvard.edu Wed 11:30-12:30pm (SEC 1.316) Thu 6:00-7:15pm (MD 119)
Nutan Sahoo nutansahoo@hsph.harvard.edu Thu 8:00-9:00am (SEC 1.316) Thu 9:15-10:30am (SEC 1.316)
Renhao Luo renhao_luo@hms.harvard.edu Thu 6:00-7:00pm (SEC 5.403) Tue 6:00-7:15pm (SEC 1.321)
Shuheng Liu shuheng_liu@g.harvard.edu Wed 10:45-11:45am (SEC 1.307)
Wed 6:15-7:15pm (SEC 1.316)
Wed 9:15-10:30am (SEC 1.307)
Wed 4:45-6:00pm (SEC 6.301/6.302)
Wenqi Chen wenqichen@g.harvard.edu Fri 6:00-7:00pm (MD 123) Wed 10:30-11:45am (MD 119)
Xinhe Zhang xinhezhang@g.harvard.edu Thu 4:00-5:00pm (SEC 5.403) Tue 3:45-5:00pm (SEC LL2.224)
Xinran (Sherry) Tang xinran_tang@g.harvard.edu Tue 7:15-8:15pm (SEC 1.316) Tue 6:00-7:15pm (SEC 1.321)
Xinyi Li xinyi_li@g.harvard.edu Fri 9:30-10:30am (MD 221) Fri 8:00-9:15am (MD 221)

Legend:

Please see the following files in the class git repository for the details:

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

EXCEPTIONS:

Important Information

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