MCB 400/500 - Computer Concepts and Perl Programming

Fall 08
Instructor: Dr. Cari Soderlund (cari@agcol.arizona.edu)

Prerequisite: None. The course is taught for students that have had NO computer programming. It is assumed that the students have used a computer for such programs as Word.

Location and Time: MWF 10:00 Conference room in LSS

Office hours: After class or by appointment at the Keating Building.

Objectives

  • The student will learn basic Perl programming. An example programming assignment is to parse a BLAST output and generate a report.
  • The student will learn how to explain a desired computation; this is referred to as a functional specification. The students will be given a functional specification during the first week of class, which will describe the overall problem they will be solving during the semester (broken down into assignments). Graduate students will be required to write two functional specifications on computational problems related to their research.
  • The student will learn basic computer concepts and terminology. This will aid them greatly in: (1) reading literature that have computational results, (2) communicating with computational scientists, and (3) using existing programs.

Required Text: Perl for Exploring DNA, by Mark D. LeBlanc and Betsey Dexter Dyer, Oxford University Press.

Lab: We will have access to the BLC (Biology Learning Center). There will be a couple of classes in this lab at the beginning of the semester to learn how to use Linux, write a simple program with gedit (an editor), and execute a Perl program. We will also show the student how they can load Linux onto their computer, though the student will be responsible for any maintainence, backups, etc of their own computers. The students may do their homeworks at the OSCR labs or on their own computers.

Grading:

  • 25 pts; Report "In a Nutshell". Due midterm and end of term.
  • 35 pts; Quizes and Exam. There will be a mid-term and final exam. How much they are worth will depend on how many quizes there are. The quizes will sometimes be pop-quizes.
  • 35 pts; Programming assignments.
  • 05 pts; Attendence.
  • 20 pts; Graduate students only. Functional specification. Due midterm and end of term.
There are no make-ups except for the mid-term and final exam. Make-up exams will be 5 essay/programming questions.

For undergrads: A (90-100), B (80-89), C (70-79), D (60-69), F (<60).
For graduates: A (110-120), B (100-109), C (90-99), D (80-89), F (<80).

Quizes and exams: They will generally be short answer, such as giving the output of a program segment. Your answer will either be right or wrong, i.e. there will not be partial credit. The exception is when the question requires you to write a program segment, in which case there will be approximately a point for each statement of the segment. Quizes will usually be 5 pts (5 questions) and will be scaled to 10 or 15 points at the end of the semester.

Program assignments: Email program to cari@agcol.arizona.edu i by class time of the day due. Also, hand in a hard (paper) copy in class. The emailed copied MUST be named as follows: hw[int]_[lastname] where integer is the assignment number and --- lastname is your lastname.

DO NOT wait until the last minute to do your homework. If you computer crashes, etc, that is not an excuse for not turning it in. Leave yourself plenty of time to complete the assignment.

Programs will generally be worth 10 to 20 pts, i.e. the total points will be approximately 100 that will be scaled to 35 pts at the end of the semester. The following gives an idea on how programs will be graded.

  • 0 pts if your program has syntax errors.
  • 80% for the program to work correctly. If part of your program works but not all of it, you will be given credit for the working part.
  • 20% self-documenting code. That is, good variable names, proper indentation, and good program design.
  • The only comment required is a header comment with name, date, program name and short description.

Learning to program: Programming is largely taught by example. Examples will be presented in class that are similar to the homeworks. The student works through the examples to learn the logic, then applies the logic to a new problem.

Cheating: The student must do their own homework! It is cheating to "look" at another students solution. It is recommended that students work together to understand the examples given in class and on the handouts, but then they must do their own homework. They may not have another student or friend write any part of their programming assigment.

Schedule: There will be a schedule and notes at a password protected site. As this is just the second time for this course, and I'm re-writing it, I cannot say exactly what the schedule will be. However, the website will always be updated with what is covered each day and often the course notes for the day will be available. The first half of the semester will cover the contents of the book. The second half will be from class notes.

How to study for this course: Study everyday! Your laptop is your lab and you can experiment on it. For every type of statement you learn in class, write a program to experiment with the statement. Make sure you understand how a given statement works before trying to use it in a program. Programming is not about memorization, but about *logic*.

Noise/talking in class: Please turn off your cell phones before class. Once class begins, no talking unless you are talking to me. You may at any time interrupt me with a questions or observation. I present lectures by writing on the whiteboard, and sometimes inadvertantly write the wrong thing; I expect the students to inform me of such mistakes.