CS273a

Course Description

A computational introduction to the most amazing programming language on the planet: your genome. Topics include genome sequencing (assembling source code from code fragments); the human genome functional landscape: variable assignments (genes), control-flow logic (gene regulation) and run-time stack (epigenomics); human disease and personalized genomics (as a hunt for bugs in the human code); genome editing (code injection) to cure the incurable; and the source code behind amazing animal adaptations. Algorithmic approaches will introduce ideas from computational genomics, machine learning and natural language processing.

Prerequisites

CS106B or equivalent (aka, some programming experience)

Cross-listings

This course is cross-listed within Developmental Biology and Biomedical Informatics as DBIO273A and BIOMEDIN273A, respectively.

Class Schedule

Tues Thurs 1:30PM-2:50PM in Alway M114; except 2/6 in Alway M106

Bibliography
The course is mostly based on current or very recent literature. As such, it does not follow any textbook. Please use the papers mentioned at each lecture as pointers into the relevant literature (for more material, you can look at the papers' references, or at more recent publications that cite those papers). The easiest way to find a paper would be to search for its title and/or authors on Google Scholar or vanilla Google.

As a Stanford student you also have free access to many biomedical journals. To access all biomedical resources Stanford pays for from off campus, you can install a browser extension and a shortcut that allows you to directly search and access Lane Library online resources using your SUNetID.

Communication

All course communication will be handled via Piazza. You can enroll by clicking this link (our class page). Course announcements and other private course resources will be communicated via Piazza.

Instructor

Gill Bejerano
Office: Beckman Center B321
Office hours: Email for appointment
Phone: (650) 723-7666
Email:

Teaching Assistants

Bo Yoo
Office: Beckman Center B381 (Third floor)
Office hours: Mondays 2-4PM, Wednesdays 3-5PM
Email:

Course Requirements
There are three course requirements:
  1. Homeworks. Throughout the class there will be two homework assignments. Three late days are awarded for the quarter. Once these late days are used up, homework turned in late will be penalized 20% per late day. The number of late days used is rounded up to the nearest day, so assignments turned in one hour late use one full late day. Late days cannot be applied to the project milestone or final project presentation.

    All codes must be executable on stanford student machines (i.e. cardinal, myth, or rice). No Jupyter notebooks will be allowed. Include how to run your code in your README, and all your codes must be able to run without user modification (e.g. if the code takes in a file as an input the path or the file name should not be hard coded but should be passed in through command line. All files must be named appropriately and your submitted zipped file must include your name. Be as detailed as possible to ensure that you get all the points.

    Because we reuse some problem set questions from previous years' homeworks, looking at previous years' solution sets is not permitted and is an honor code violation.

    Students may discuss homework problems in groups. However, each student must write down the solutions independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student should write on the problem set the set of people with whom s/he collaborated.

  2. Project. Students will form groups, and each group will be assigned an individual project. Instead of a final exam, at the end of the class there will be a final presentation where the groups will present their work. There will also be a final survey for your feedbacks.

  3. Attendance. For this class, attendance is mandatory. You may miss up to 2 lectures without affecting your grade, with consideration given if you are not feeling well.

Grades will be determined by roughly the following breakdown: 27.5% HW1, 27.5% HW2, 5% Attendance, 40% Final Project.

If you are registered with the Office of Accessible Education (OAE), please send the accommodation letter via email to both the instructor and the CAs in the beginning of the quarter.
Honor Code and Regrade Policy

All homework assignments are individual assignments and you may not work in a group. You are allowed to discuss ideas and compare final numeric outputs (e.g. number of lines in a file), but no part of your final code can be shared with other students. We take honor code violations seriously, and any violations will be reported to the Office of Community Standards. We may make mistakes when we grade your homework. If you find one please send an email to cs273a-win1920-staff@lists.stanford.edu to ask for a regrade. We will regrade your entire homework. You cannot redo your homework after grades have been returned. We will not accept anymore submissions after grades have been sent out.

Course Tools

The base course directory is located at /afs/ir.stanford.edu/class/cs273a, and is reachable from the cardinal and corn machines. Source tree executables are available within the bin directory, and are machine-dependent. If you add "/afs/ir.stanford.edu/class/cs273a/bin/@sys" to your PATH variable, the correct version of the executable will be executed.

Previous CS273A Materials

There are course schedules and materials available from the Winter 2018/2019, Winter 2017/2018, Autumn 2016/2017, Autumn 2015/2016, Autumn 2014/2015, Autumn 2013/2014, Autumn 2011/2012, Autumn 2010/2011, Autumn 2009/2010, Autumn 2008/2009, Autumn 2007/2008, and Spring 2006/2007 versions of the course. Also see the Winter 2012/13 class of CS173.


Introductory Bio and CS Sessions
The following is a list of introductory sessions for students unfamiliar with (or just wanting a refresher lecture on) biology and computer science to the depth necessary to make the course enjoyable. These primer sessions will be held on the following dates during the class time.

Date Subject
1/9 Introductory Biology Primer
1/16 Introduction to UCSC Genome Browser
1/23 Introduction to Text Processing

Schedule

 DateTitleHW
11/7Gill: Overview 
21/9CA: Primer Session 1 
31/14Gill: Protein Coding Genes 
41/16CA: Primer Session 2HW 1 Assigned
51/21Gill: Non Coding Genes 
61/23CA: Primer Session 3 
71/28Gill: Gene Regulation I 
81/30Gill: Gene Regulation II, Repeats 
92/4Gill: Repeats II, Mutation+SelectionHW 1 Due; HW 2 Assigned
102/6CANCELLED 
112/11Gill: Chains & Nets 
122/13Gill: Nets, DNA Sequencing 
132/18Gill: Population Genetics, Disease 
142/20Gill: Monogenic DiseasesHW 2 Due; Final Project Assigned
152/25Gill: Monogenic Diseases II 
162/27Gill: Monogenic Diseases III 
173/3  
183/5Final Project Practice Presentation 
193/10Gill: Comparative Genomics 
203/12 Final Presentation