Computer Science Background

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 and Cogniterra.

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 and/or Cogniterra classes recommended below). 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 May 2024, 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 Biomedical Sciences, Bioengineering, and Quantitative Biology.

 

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).

UCSD # Title
CSE 6R or 11 Introduction to Computer Science and Object-Oriented Programming
(CSE 6R: Python or CSE 11: Java)
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:

UCSD # Title
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 Biomedical Sciences, Bioengineering, and Quantitative Biology.

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 (RECOMMENDED): Online courses on Cogniterra, available year-round for free for UCSD BISB students. See Coursera and Cogniterra logistics below for registration information.

Platform Course Similar UCSD course
Cogniterra Data Structures CSE 12 & 100
Cogniterra Ace Your Next Coding Interview by Learning Algorithms CSE 101

OPTION 4: Online courses on Coursera. See Previous recommendations (all-Coursera) below.

Incoming/current students: If you have not yet taken discrete mathematics, programming, and/or data structures, these are needed before taking algorithms. We suggest taking these courses. They're available year-round for free for UCSD BISB students (see Coursera and Cogniterra logistics below for registration information).

Platform Course Similar UCSD course
Cogniterra Introduction to Computer Science and Object-Oriented Programming: Python CSE 6R
Coursera Intro Discrete Mathematics for Computer Science Specialization
 • Course 1: Mathematical Thinking in Computer Science
 • Course 2: Combinatorics and Probability
 • Skip courses 3-5
CSE 20 & 21
Cogniterra Data Structures CSE 12 & 100
Cogniterra Ace Your Next Coding Interview by Learning Algorithms CSE 101

Alternatively, see Previous recommendations (all-Coursera) below

Our previous online course recommendations on Coursera are listed below. These courses are still suitable and may be of interest:

  • The new recommendations (above) are more streamlined. However, they use two platforms (Coursera and Cogniterra); some require a fee (waived for UCSD BISB students); and only some have a certificate option.
  • The older recommendations (below) are all in a single platform (Coursera). Coursera is much more established; offers free versions of these classes (w/o a certificate); and certificate versions for an additional charge (waived for UCSD students). The Coursera series also have additional classes to go beyond our recommendations.

 

Scenario (most common): Need algorithms, but took programming and data structures

Incoming/current students: If you have programming and data structures experience but have not yet taken an undergraduate algorithms course, we suggest taking these Coursera courses (see Coursera and Cogniterra logistics below for registration information). They're available year-round for free for UCSD students.

Platform Course Similar UCSD course
Coursera Data Structures and Algorithms Specialization
 • Course 1: Algorithmic Toolbox
 • Course 2: Data Structures
 • Course 3: Algorithms on Graphs
 • Skip courses 4-6
CSE 100 & CSE 101

 

Scenario (less common): Need to take programming, data structures, and algorithms

Incoming/current students: If you have not yet taken discrete mathematics, programming, and/or data structures, these are needed before taking algorithms. We suggest taking these Coursera courses (see Coursera and Cogniterra logistics below for registration information). They're available year-round for free for UCSD students.

Platform Course Similar UCSD course
Coursera Intro Discrete Mathematics for Computer Science Specialization
 • Course 1: Mathematical Thinking in Computer Science
 • Course 2: Combinatorics and Probability
 • Course 3: Introduction to Graph Theory
 • Skip courses 4-5
CSE 20 & 21
Coursera Object Oriented Java Programming: Data Structures and Beyond
 • Course 1: Object Oriented Programming in Java
 • Course 2: Data Structures and Performance
 • Course 3: Advanced Data Structures in Java
 • Skip courses 4-5
CSE 11, 12, & 100
Coursera Data Structures and Algorithms Specialization
 • Course 1: Algorithmic Toolbox
 • Skip courses 2-6 (2-3 overlap w/OO Java series; 4-6 go beyond our recommendations)
CSE 101

Coursera

Incoming/current UCSD students: 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. You're eligible for Coursera for UC San Diego once you are admitted and set up your UCSD accounts. You may be able to audit the courses prior to that (however, you don't get a certificate of completion if you audit a course).

 

Prospective students: See the Prospective students section above. We recommend taking classes for credit at your undergraduate school. If you do take classes through Coursera, see their enrollment options page for info on paid options and free auditing options. Auditing may be available for particular courses but not for specializations. If you're on a Coursera specializations page, pick “Courses”; go to a particular course; and use the enrollment button on the course page (rather than on the specializations page) to see if it has an Audit option.

 

Cogniterra

Some Cogniterra classes are free and others have a registration fee. Incoming/current UCSD BISB students may contact us for a fee waiver for Ace Your Next Coding Interview by Learning Algorithms.

Cogniterra 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.

Cogniterra classes allow enrollment year-round. You can start any time instead of waiting for a new quarter or dealing with a waitlist.