Giter Club home page Giter Club logo

mcb185's Introduction

MCB185: Programming for Biologists

Intent

In this course, you will learn computer programming in a biological context. This is not so much a science or data analysis course as an introductory programming course with a molecular biology theme. Along with programming, you will be introduced to some essential bioinformatics skills and standards.

Participation

In the real world, programming is generally done in teams. For this reason, participation is a large part of your grade. There are multiple ways to participate.

  • Attendance in class during the scheduled time
  • Attendance in online coderie sessions (see below)
  • Activity in the class Discord channel
  • Collaborative coding activities
    • Organizing a group
    • Joining a group
    • Asking for help
    • Providing help
    • Solving problems together

Form vs. Function

This is foremost a course about how to program. When faced with a homework problem, such as "compute the descriptive statistics for a set of numbers", you could very easily import statistics instead of writing the code yourself. In a professional setting, you should do that. However, the goal here isn't to solve a problem but to learn how to solve a problem. In many programming courses, the instructors have automated grading. I would never do that, because that would mean that the focus was on getting the correct answer. In this course, the focus is on form as function. It's better to have beautiful code that is broken than ugly code that solves the problem correctly. The beautiful code is easier to fix and maintain in the long run.

Collaboration vs. Plagiarism

In this course, you are encouraged to collaborate with other students. If you work closely with other students, it's entirely possible you will have the exact same code. In some classes that might be considered plagiarism, but not here. Each homework assignment has a section where you can list the names of the collaborators. Not only is this not plagiarism, it's actually encouraged, and counts towards your participation grade! Just fill out the names of the authors. It looks like this:

# Authors: Ian, Keith, Hannah

Working with people is very different from copy-pasting code from the Internet. If you copy-paste without attribution, it is considered plagiarism. In this course, you are not allowed to use any programming construct unless it has been introduced in a previous or current unit. Getting answers from the Internet, AI, or a more advanced programmer will frequently result in ILLEGAL code. If you turn in illegal code, you will be penalized. Depending on the severity of the infraction, you may be sent to Student Judicial Affairs. There are no warnings.

See the ILLEGAL.md file in this course directory for more information on what is considered illegal.

In general, resist copy-paste. Typing words helps you remember what you did later. Copy-paste is one of the worst ways to learn how to program. Also, copy-paste is one of the greatest sources of silent programming errors and plagiarism.

Getting Good

One of the best ways to practice programming is to write the same program over and over. Repetition is just as important in programming as it is in something like music or sports. After spending 30 minutes writing a program, you might feel like throwing it away and re-writing it would be dumb. And yet, it's the smartest thing you can do.

Getting Help

The instructor and TA monitor the course Discord server, so asking questions in the #mcb185 channel will get you the fastest response. You may get answers from other students even sooner. Email will also work.

The instructor and TA also hold coderies, which are online, small group programming sessions. Not only is this a good way to meet your classmates and get personalized help in a cozy setting, it's also a required part of your participation grade. Sign-ups are managed via Calendly. See Canvas and Discord for the schedule and URL.

Getting Started

To begin the course, start reading course/unit0-setup.md and follow the directions. Once you finish that, move on to subsequent units. The course is designed to be completed in linear order. Skipping around between or within units is not advised.

Getting Behind

People learn programming at highly variable rates. Some people can do this entire course in a couple weeks. Others may never finish. Unfortunately, the course has a 10-week schedule that ends in a letter grade. Not all students will finish the course. That's okay, you can still get a good grade even if you don't finish all of the material.

mcb185's People

Contributors

iankorf avatar anishapatel77 avatar rhpineda avatar

Stargazers

 avatar Merdy avatar Reese Withoutherspoon avatar Christina Chen avatar Samantha Leano avatar  avatar

Watchers

 avatar  avatar

Forkers

lancedornan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.