Fundamentals of Bioinformatics Programming

Fall 2022


Evolving syllabus

Under certain circumstances, the instructor may have to alter course requirements, assignment deadlines, and grading procedures; and the university may have to alter the academic calendar.


Course Description

Computer programming in the life sciences is used for modeling and data analysis across all fields. In this course, students will learn more advanced techniques to solve life sciences modeling problems efficiently using parallelization and distributed computing. Common methods and thoughtful decisions on proper use of tools will be emphasized.


Prequisites

COS majors only; COS-BIOL-230 Bioinformatics Languages


Administrative details

Required Text:C Programming: Absolute Beginner's Guide by Perry and Miller. ISBN 0-7897-5198-4
Using OpenMP by Chapman, Jost, and Van Der Pas. ISBN 978-0-262-53302-7
Meetingslecture: MW 12-12:50pm, GOS-1345
Workshop: F 11am-12:50pm, GOS-1345

Contact Information

Instructor:Michael Osier
Office:08-1338
Instructor Schedulehttp://bulgogi.rit.edu/~mosier/lab/courses/fall_sched22.html
Contact:COS directory

Topics and Readings

. Week of Monday Wednesday Workshop Homework
Week 1 Aug 22 Introduction; Intro to C (Perry Chapters 2-8) C is for Continue (Perry Chapters 9-15, 17-18, 21-23, 30-32) Assignment 1 and HW1 - Text Predator-Prey model
Week 2 Aug 29 C++ object design Memory management (Perry Chapters 24-27) Quiz 1; Assignment 2 and HW2 - Predator-Prey objects
Week 3 Sept 5 No class Monday String and file libraries (Perry Chapters 6, 19, 28-29) Quiz 2; Assignment 3 - Finding ORFs HW 3 - Fastq file cleanup
Week 4 Sept 12 Bitwise operations RNG (rand and srand, Perry Chapter 20) Quiz 3; Assignment 4 - GC content models
Week 5 Sept 19 Review and possible activity Q&A and Workshop practice Assignment 5 - Random Genetic Drift in one population HW 4 - RGD in multiple populations
Week 6 Sept 26 Serial code optimization Serial code optimization Quiz 4; Assignment 6 and HW 5 - Finding protein domains in FASTA protein files and Optimizing
Week 7 Oct 3 Methods of parallel and distributed computing Multithreading in C++ Quiz 5;Assignment 7 and HW6 - RGD with threads
Week 8 Oct 10 No class Monday Multithreading continued... Quiz 6; Assignment 8 and HW 7 - Island model of migration in parallel
Week 9 Oct 17 Amdahl's and Gustafson's laws Q&A and Workshop practice Assignment 9 - Finding protein domains in parallel
Week 10 Oct 24 Shell scripting Intro to OpenMP (Chapman Chapter 1) Quiz 7; Assignment 10 - Random Genetic Drift simulation in parallel HW 8 - Extending RGD in parallel with Fst
Week 11 Oct 31 OpenMP continued (Chapman Chapters 4.1-4.6.1, 5) Computation metrics Quiz 8; Assignment 11 and HW 9 - Optimizing RGD in parallel with migration and Fst
Week 12 Nov 7 MPI concepts Distributed concepts Online: Quiz 9; Assignment 12 and HW 10 - Monte Carlo simulations of viral mutation and evolution
Week 13 Nov 14 GPU computing concepts Q&A and Workshop practice Quiz 10; Assignment 13 and HW 11 - Viral mutation with translation
Week 14 Nov 21 Online activity Thanksgiving Break
Week 15 Nov 28 git Quiz 11; Assignment 14 - Viral mutation calculations
Week 16 Dec 5 Catchup and review Exam week
Finals Dec 12 Exam week

Grading

14 workshops3.5 pts each = 49 pts total71% Programming
11 required homework assignments2 pts each = 22 pts
11 Quizzes2 pt each = 22 pts22% Quizzes
Attendance7 pts7% Attendance
Total100 pts

A[95-100]
A-[90-95)
B+[86.7-90)
B[83.4-86.7)
B-[80-83.4)
C+[76.7-80)
C[73.4-76.7)
C-[70-73.4)
D[60-70)
F<60


Attendance

Students are expected to attend all lectures and workshops. Students are also expected to be active participants. For days with Q&A, students must submit three questions about the course material by midnight before that session.


Workshops

There are a total of fourteen weekly workshop periods. Assignments will be started in the workshop, then can be completed outside of class if necessary. Final workshops are due in the appropriate myCourses Dropbox before the next Workshop. The final workshop is due the first week of the Exam Period at the start of the normal workshop time.

Workshops may not be submitted for credit more than one week late, and then with some credit not earned. Workshops get increasily more challenging as the course progresses and build on the lecture discussion. Also, some workshops are dependent on completing earlier workshops or homework assignments. Therefore, please be certain to complete workshop and homework assignments on time.

You are free to discuss workshops with other students. In fact, it is strongly encouraged! However, do not share your code with other students! (See cheating/plagiarism policy below) Any discussions, especially in the myCourses Discussion groups, must not include code. Pseudocode may be shared.


Homework

Homework assignments will generally expand upon the workshop assignments. Most will involve programming assignments. Homework is due the following week before workshop starts in the appropriate myCourses Dropbox. So the homework for Week 1 is due before workshop on Week 2. As with workshops, homework may not be submitted for credit more than one week late, again with some credit not earned. Some homework assignments build upon previous homework or workshop assignments.


Quizzes

Quizzes will take place at the start of workshop.

If needed, only one quiz makeup will be given for that assessment at a day and time to be determined by the instructor. So all students needing a makeup will take the makeup on the same date and time. Let the instructor know as far in advance as possible if you need to take a makeup.

No electronic devices, caps, or hoods allowed during quizzes.


Plagiarism/cheating policy

For the first offense, anyone caught plagiarizing or otherwise cheating will receive a 0 (zero) on the assignment/exam/workshop/homework, and be referred to the Head of the School of Life Sciences. In the event of a second offense, the student will receive an "F" for the course. If you have any questions about whether or not something constitutes plagiarism and/or cheating, please ask the instructor in advance. Duplicate submissions or excessive patchwriting will also receive a grade of 0 (zero) for the assignment/exam/workshop/homework. In the case of especially egregious offenses, the instructor reserves the right to assign a grade of "F" for the course, as per RIT policy.

Note that your code must also be written by yourself. You are encouraged to work with each other in person and through discussion groups, but must in the end write all code on your own. Evidence of plagiarism on a workshop will be treated the same as for plagiarism or cheating in any other part of the course. The workshop and homework assignments will be automatically checked for cheating.


Links


Copyright notice

The legal use of distributed material is strictly limited to course activities, and not activity outside the course. The use of copyright protected material outside the RIT course may be prohibited by law.


COVID-19 Syllabus Addendum

We are all aware of the unique circumstances resulting from the worldwide COVID-19 SARS-2 pandemic. RIT has consulted federal, state, and local guidelines and policies to implement a safe, yet educational environment for students, staff, and faculty. These guidelines, located at http://www.rit.edu/ready/ are routinely updated as conditions change.

What do these mean for this class? As noted in the above syllabus, students are expected to be active participants in the course and to follow all safety precautions. I encourage your communication direclty to me about any special needs or concerns. Together we will learn in a safe and productive format.

Tardiness to class or submitting assignments/quizzes/exams due to non-compliance with Covid testing or other Institute requirements will not be excused.

COVID-19 policies will be adjusted as necessary and appropriate.


Contents last updated 12/2/22