For students without a strong Computer Science background
Students in the BISB program have backgrounds in Computer Science, Biology, Math, and related areas; however, particular strengths and interests vary.
Beyond introductory programming and scripting courses, it is essential to have taken undergraduate courses in data structures and algorithms prior to taking the required BISB class CSE 282 / BENG 202 (Introduction to Bioinformatics Algorithms). We emphasize that most BISB students already have such experience prior to entering the program. If you do not, here are some options to prepare. We recommend preparing before starting at UCSD by taking relevant coursework at your undergraduate school or online through Coursera.
Before registering in CSE 282 / BENG 202, you will need to submit a brief statement of your preparation for the class (e.g., classes at your undergrad school similar to UCSD's CSE 101; or the Coursera Data Structures and Algorithms Specialization courses 1-3). CSE 282 is usually offered winter quarter, so this statement will usually be due October/November. If you're not prepared to take it your first year, you may need to postpone it to your 2nd year.
Note: The external links below are current as of March 2021, but may change. Please contact the graduate program coordinator if they change.
Prospective students: If you have a medical or wetlab focus and are interested in using Bioinformatics tools to analyze research data, but do not wish to focus on the algorithms and software behind them, please also check related programs such as the Biomedical Sciences Program.
Prospective students: You should take Computer Science courses at your school similar to this series of UCSD classes. Please note, once you are at UCSD in the BISB graduate program, it may be difficult to enroll in these classes (CSE undergrads have priority), and they will not count as electives (except CSE 101).
- CSE 11: Introduction to Computer Science and Object-Oriented Programming
- CSE 12: Basic Data Structures and Object-Oriented Design
- CSE 20 / Math 15A: Discrete Mathematics
- CSE 21: Mathematics for Algorithms and Systems
- CSE 100: Advanced Data Structures
- CSE 101: Design and Analysis of Algorithms
You should also take math and biology courses at your school, similar to these UCSD undergraduate classes:
- Math 20A-B-C-D: Calculus and Introduction to Differential Equations
- Math 18: Linear Algebra
- Math 11, 183, or 186: Introduction to Probability and Statistics
- BICD 100: Genetics
If you have a medical or wetlab focus and are interested in using Bioinformatics tools to analyze research data, but do not wish to focus on the algorithms and software behind them, please also check related programs such as the Biomedical Sciences Program.
Incoming/current students: If you have programming and data structures experience but have not yet taken an undergraduate algorithms course, we suggest the following options.
OPTION 1: Taking CSE 101. Undergrads have enrollment priority, so it can be difficult for grad students to get in; CSE advises that grad students have the best chance in the fall quarter. Fall is also good since CSE 282 is in the winter. If you are an incoming student still at your previous school, try to take a similar class there.
OPTION 2: You may be able to self-study from this past CSE 101 site (including slides & homework), at least while it's still available.
OPTION 3: Online courses on Coursera, available year-round for free. See Coursera logistics below for registration information. Specifically, the Data Structures and Algorithms Specialization, courses 1-3 out of the 6 courses in that series:
- Course 1: Algorithmic Toolbox
- Course 2: Data Structures
- Course 3: Algorithms on Graphs
- Note: Courses 1 and 3 correspond to most of CSE 101, while Course 2 corresponds to part of CSE 100. Courses 4-6 go beyond what we are recommending.
Incoming/current students: If you need to take programming, data structures, and algorithms, we suggest taking these four Coursera courses (see Coursera logistics below for registration information). They're available year-round for free.
- Coursera specialization Object Oriented Java Programming: Data Structures and Beyond:
- Course 1: Object Oriented Programming in Java (similar to UCSD's CSE 11)
- Course 2: Data Structures and Performance (similar to CSE 12)
- Course 3: Advanced Data Structures in Java (partially covers CSE 100)
- Skip Courses 4-5
- Next, in Coursera's Data Structures and Algorithms Specialization:
- Course 1: Algorithmic Toolbox (overlaps CSE 101)
- Skip Courses 2-6 (Courses 2-3 overlap with the other series above, and Courses 4-6 go beyond our recommendations)
UCSD students may take the Coursera classes recommended above for free through Coursera for UC San Diego (use this rather than the regular registration links on the Coursera class and specialization pages above). On successfully completing each course, Coursera will issue a certificate of completion, roughly like a “Pass” on a “Pass/Fail” grading scale. However, Coursera classes do not count for UCSD course credit, do not issue letter grades, do not appear on your UCSD transcript, and do not count towards your UCSD degree requirements, whereas CSE 101 does count. This is just an option for you to prepare for CSE 282 and other graduate CSE courses. Coursera classes have rolling enrollment dates year-round and essentially unlimited enrollment, so you can start any time instead of waiting for a new quarter or dealing with a waitlist. You can also work on the Coursera classes even before starting at UCSD.