February 11, 2020

## Welcome

### to “Computing for Molecular Biology 2”

The previous course was “Introduction to Data Science”

• also know as “Computers are not typewriters”

This course is “Scientific Computing”

• a.k.a. “Computational Thinking”
• a.k.a. “Quantitative Thinking”

## Computers are rule changers

Because computers are essential tools for Molecular Biologists

• They control the instruments

• The help us to understand the results

• They help us to design the experiments

We will focus on the last 2 items

## Software as a Scientific Tool

"Scientists spend an increasing amount of time building and using software.

However, most scientists are never taught how to do this efficiently"

## Software as a Scientific Tool

“Software is as important to modern scientific research as telescopes and test tubes”

## Software as a Scientific Tool

“…recent studies have found that scientists typically spend more than 30% of their time developing software…”

## Software as a Scientific Tool

“We believe that software is just another kind of experimental apparatus and should be built, checked, and used as carefully as any physical apparatus”

## Software skills are important

"However, most scientists do not know how reliable their software is.

This can lead to serious errors impacting the central conclusions of published research"

## Software skills are important

“Recent high-profile retractions, technical comments, and corrections because of errors in computational methods include papers in Science, PNAS, the Journal of Molecular Biology, Ecology Letters, the Journal of Mammalogy, Journal of the American College of Cardiology, Hypertension, and The American Economic Review”.

## Who said so?

Wilson et al. “Best Practices for Scientific Computing.” PLoS Biology 12,1 (2014)

• University of Ontario Institute of Technology, Canada
• Michigan State University, USA
• Space Telescope Science Institute, USA
• Monterey Bay Aquarium Research Institute, USA
• University of California Berkeley, USA
• University of British Columbia, Canada
• Queen Mary University of London,United Kingdom
• University College London, United Kingdom
• University of California Davis, USA

## Quantitative Methods

### Harvard Medical School

Modern biology increasingly requires computational and quantitative methods to collect, process, and analyze data, as well as to understand and predict the behavior of complex systems.

## Quantitative Methods

### Harvard Medical School

Whereas throughout much of the 20th century computational and mathematical biology were niche disciplines, their methods are now becoming an integral part of the practice of biology across all fields.

## Read more in the paper

Stefan et al. “The Quantitative Methods Boot Camp: Teaching Quantitative Thinking and Computing Skills to Graduate Students in the Life Sciences”. PLoS Comput. Biol. 11, 1–12 (2015).

## Learning Goals and Objectives

### The authors say:

“We broadly categorize these goals into three domains”

• thinking
• doing
• feeling

## Learning Goals and Objectives

### The authors say:

Developing practical programming skills (“doing”) is of limited use if one does not also develop both the ability to think about problems algorithmically (“thinking”) and a positive attitude towards computing (“feeling”).

## Thinking

### Students should be able to

• recognize when you can use computational methods
• analyze a problem to find a computational solution
• use simulations to learn about biological systems
• compare the results of simulations to real-world data

## Thinking

• formulate and test hypotheses
• understand a project as a collection of smaller parts
• prepare a plan to solve a problem
• think of ways to test if the computational approach is valid

## Doing

Students will be able to

• import large datasets
• put them into appropriate computational structures
• visualize a dataset in multiple ways
• compute summary statistics

## Doing

• use ideas of programming to solve problems
• use trial and error to design a computational approach
• write a program to automatize data analysis
• find and fix errors in a piece of code

## Documenting

• read and understand someone else’s code
• document their code

## Feeling

### Students should

• understand the value of computational approaches
• feel confident about solving a computational problem
• keep working when they find a problem difficult
• recognize that successful coding can be fun as well as useful

## Feeling

• know when to ask for help and where to find support
• evaluate the quality of computational methods in science
• help the work of others with examples of good practice

## How will we do it?

A lot of practice

• Solving problems from Molecular Biology

• genome analysis
• experimental design
• Quizzes

• Forum

## Forum

Remember that you can ask any question related to the course

• On the Web:

https://groups.google.com/d/forum/iu-cmb

• by Email:

iu-cmb@googlegroups.com

You get 1 point for each real question, and 2 points for each practical answer

## Online Resources

Check also References in the course homepage

## Practical issues

• Classes on Tuesdays and Wednesdays
• 24 classes in the semester
• Attendance will be taken at the start of each class
• Students must attend at least 70% of the classes
• The attendance book can be seen in Google Sheets.

## Homework is not optional

• We will give homework every week
• Homework is mandatory, especially if you are doing the course again
• Homework delivered on time counts as attendance
• Talk with your classmates, and deliver a personal homework

## Welcome Survey

• There is a survey in the homepage
• Answer it. It is not optional
• we use this data later

## Let’s draw

• Take a blank paper and draw Turkey’s flag
• write a text explaining how to draw the flag
• Use Markdown and send it by email
• If you do not have computer, do it in paper
• Always deliver on time

## Interesting rules

• Forbidden words:
• moon
• star
• Good words:
• line
• angle
• distance

## Key parts of computational thinking

Decomposition
breaking down a complex problem or system into smaller parts
Pattern Recognition
looking for similarities among and within problems
Abstraction
focusing on the important parts only, ignoring irrelevant detail
Algorithms
developing a step-by-step solution to the problem

## It is not about computers

Computational thinking is about problem solving

Almost any problem can be solved using computational thinking

For example: Sports, Projects, Science

## Homework 1

• Describe how to draw this:

## Key words

• Blocks
• Only a limited set
• Sprite
• X, Y

If you can build with LEGO, you can program