|
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.
|