# Philosophy of Course Design The CS1 courses at Bryn Mawr College are unique for their sensitivity to gender issues in computer science. Specifically, we have many smart women coming to BMC, but who may never have had a computer science course. We begin a square one, attract students, build confidence, and develop solid understanding and skills in computer science. Students start at beginning, and are ready for Data Structures (CS2) on completion of the course. The BioCS continues in this tradition. It touches on the ideas outlined in CS Principles, but our course is definitely a hands-on, practice-oriented, programming course. In addition, it is designed to create an "active learning classroom" using ideas from the "flipped classroom" philosophy. We will be using the state of the art in computational tools for Biology, specifically using Python 3 on Jupyter running on Bryn Mawr College's supercomputer. ## Computer Science Learning Objectives Understanding and use of: * Functions * Variables * Loops, if's, flow of control * Iteration * Recursion * Objects (use and creation) * Sorting and Searching (Divide and Conquer) * Types (string, boolean, numbers, etc.) * Testing * Operations * ordering/precedence * Data structures * arrays * lists * trees * Dynamic programming/memoization * Debugging Social learning aspects: * Pair programming * Teamwork/collaboration * Communication * Reflection Algorithmic thinking: * Time vs. space * Ananlysis (Big O, if not exactly called that in class) * Abstraction, operating system, software, hardware * Computational thinking, problem solving Data: * Representation (bits) * Structures Process: * Internet * Flowchart/design * Stepwise refinement, problem decomposition Mathematics: * Logic * Geometry * Trigonometry * Scale and proportions * Quantitative and Qualitative Analysis * Statistics * Randomness * Recursive structures: language, functions, data structures, etc. Science: * Computation, computer, Turing Machine * Computer Science topics: AI, software engineering, games, etc. * Modeling * Reproducibility * Experiment, hypothesis, test, datapoint ## Biological problems for computing * GC content of a sequence/set of sequences * Download DNA sequences for a set of species and compare * Genes and non-genes * content along chromosome * Random genetic drift & selection in a population * Effects of population size * Haploid vs. diploid / additive vs. dominance * Migration * Dynamic models -- stochastic models: * Lac operon dynamics * Predator prey systems: Lotka-Volterra * SIR(S) model of Epidemics (add birth/death & evolution?) * Sequence alignment * Global vs. local * Multiple alignment * Mating/recombination/mapping * relatedness of relatives * comparison of mating schemes * Flocking / behavior * Foraging * Dispersal