| Literature DB >> 25411839 |
Amir Rubinstein1, Benny Chor1.
Abstract
We join the increasing call to take computational education of life science students a step further, beyond teaching mere programming and employing existing software tools. We describe a new course, focusing on enriching the curriculum of life science students with abstract, algorithmic, and logical thinking, and exposing them to the computational "culture." The design, structure, and content of our course are influenced by recent efforts in this area, collaborations with life scientists, and our own instructional experience. Specifically, we suggest that an effective course of this nature should: (1) devote time to explicitly reflect upon computational thinking processes, resisting the temptation to drift to purely practical instruction, (2) focus on discrete notions, rather than on continuous ones, and (3) have basic programming as a prerequisite, so students need not be preoccupied with elementary programming issues. We strongly recommend that the mere use of existing bioinformatics tools and packages should not replace hands-on programming. Yet, we suggest that programming will mostly serve as a means to practice computational thinking processes. This paper deals with the challenges and considerations of such computational education for life science students. It also describes a concrete implementation of the course and encourages its use by others.Entities:
Mesh:
Year: 2014 PMID: 25411839 PMCID: PMC4238948 DOI: 10.1371/journal.pcbi.1003897
Source DB: PubMed Journal: PLoS Comput Biol ISSN: 1553-734X Impact factor: 4.475
Figure 1Biological modules of the course and related computational topics.
Examples for computational concepts and thinking processes discussed in various topics, and emphasized in the “reflection” stage of the pipeline.
| Computational concepts and thinking processes | Topics/examples in which they are employed in the course |
| Abstraction | Computer representation of biological entities (e.g., graphs for networks, strings for DNA/proteins, matrices of pixels for images) |
| Distinction between abstract data types and their implementation (e.g., a graph can be represented as an adjacency matrix or as a neighbors list) | |
| Generalization | From the “bridges of Konigsberg” to conditions for the existence of an Eulerian path in a graph |
| From Boolean to discrete models | |
| From the “Game of Life” to cellular automata | |
| Modular design, decomposition | Image noise reduction and edge detection apply different local morphological operators on image pixels (mean, median, dilation, erosion), thus all are implemented as concrete invocations of a general local operator function |
| Simulation of the ”Game of Life” separates GUI, logic (local transition rules) and data control (the “engine” of the simulation) | |
| Reduction | Reducing variants of shortest paths to the shortest path from a single source |
| Reducing Hamiltonian path to travelling salesperson, arguing NP-completeness of the former | |
| Pre-processing | Building the suffix tree of a string for later substring matching “Compiling” a regular expression (in Python) for pattern matching |
| Data structures | Graph |
| Stack, used for finding Eulerian paths in a graph | |
| Priority queue, used for finding shortest paths in a graphs with Dijkstra's algorithm | |
| Hash table, used as a dictionary, and for the longest common substring problem | |
| Trie, used as a dictionary for strings | |
| Suffix tree, used for various string problems | |
| Computational models | Deterministic finite automata (DFA) |
| Using DFA for pattern matching | |
| Greedy algorithms | Dijkstra's algorithm |
| Regular expressions' evaluation in a greedy manner in Python's re package | |
| Computational complexity; P, NP and NPC | Traveling salesperson and the de novo assembly problem: demonstrating NP-completeness |
| Eulerian versus Hamiltonian paths for sequencing by hybridization | |
| Graph isomorphism | |
| Discrete notions and models | Graphs |
| Cellular automata | |
| Discrete “state graphs” for the simulation of regulation networks |
Figure 2Students' views of the important facets of CS before and after the course.
Numbers indicate how many students among the responders included the notion in their definition for the discipline.