Skip to content

iankorf/MCB185

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages