Computer programming in the life sciences is used for modeling and data analysis across all fields. In this course, students will learn the fundamentals of computer programming and apply it to solve real problems in the life sciences. Common syntax and thoughtful decisions on proper use of data structures will be emphasized.
COS majors only
| Required Text: | Coding Games in Scratch, 2019 edition, by Jon Woodcock ISBN 978-1465477330 |
| C Programming Absolute Beginner's Guide, 3rd edition. Greg Perry and Dean Miller, ISBN-13 978-0789751980 | |
| Meetings | lecture: MW 9-9:50am GOS-1365 |
| Workshop: F 8-9:50am GOS-1365 |
| Instructor: | Michael Osier |
| Office: | 08-1338 |
| Instructor Schedule | http://bulgogi.rit.edu/~mosier/lab/courses/fall_sched26.html |
| Contact: | mvoscl@rit.edu |
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.
| . | Week of | Monday | Wednesday | Workshop | Homework | Bonus assigned |
|---|---|---|---|---|---|---|
| Week 1 | Aug 24 | Introduction and Algorithms | Basic statements, Scratch (Online reserves: "Think Like a Programmer" Chapter 1) | Quiz 1, Assignment 1 - Scratch Star Hunter (Scratch) | HW 1 - Modifying Star Hunter | |
| Week 2 | Aug 31 | Loops and Conditionals | Data types | Quiz 2, Assignment 2 - Circle Wars (Scratch) | HW 2 - Predator/Prey simulator | |
| Week 3 | Sept 7 | No class Monday | Concepts of drawing | Quiz 3, Assignment 3 - Drawing fractal trees (Scratch) | HW 3 - Logistic growth | |
| Week 4 | Sept 14 | Subroutines in Scratch | Linux command line and editors | Quiz 4, Assignment 4 - Linux command line | Week off | |
| Week 5 | Sept 21 | Introducing C - Loops and Conditionals (Chapters 2-4,11,14-15) | Assignment 5 - Fill-in-the-blanks | HW 4 - More complex blanks to fill | ||
| Week 6 | Sept 28 | C/C++ primitive data types and math operations (Chapters 5,9-10,12) | Arrays, strings, and string operations(Chapters 21-22, 6, 19, 8) | Quiz 5, Assignment 6 - DNA sequence GC content | HW 5 - Array worksheet | Sliding Window |
| Week 7 | Oct 5 | Memory and pointers (Chapters 24-26) | Subroutines/functions/methods (Chapters 30-32, 7) | Quiz 6, Assignment 7 and HW 6 - Finding protein domains | Variable protein domains | |
| Week 8 | Oct 12 | No class Monday | Review/catchup | Quiz 7, Assignment 8 and HW 7 - Finishing protein domains | ||
| Week 9 | Oct 19 | Sorting (Chapter 23) | Quiz 8, Assignment 9 - Sorting competition | HW 8 - Sorting parallel arrays | Sorting worksheet | |
| Week 10 | Oct 26 | File I/O (Chapter 28) | Switch-Case statements and structs (Chapters 17, 27) | Quiz 9, Assignment 10 - DNA k-mers | Week off | Find the Errors: FastQ average length |
| Week 11 | Nov 2 | Linked lists | 2D Array practice | Assignment 11 and HW 9 - Predator Prey | ||
| Week 12 | Nov 9 | Hash maps | Review | Quiz 10, Assignment 12 and HW 10 - Extended Predator Prey | ||
| Week 13 | Nov 16 | Queues and stacks | Building trees by insertion | Quiz 11, Assignment 13 and HW 11 - DNA k-mers with hash maps | Deduplicating FastQ files | |
| Week 14 | Nov 23 | Online catchup and practice | No class Wednesday or Friday | |||
| Week 15 | Nov 30 | Traversing trees - Iterative vs recursive | Deleting from and balancing trees | Quiz 12, Assignment 14 - Stack/Queue/Tree practice | Week off | |
| Week 16 | Dec 7 | Catchup and review | No class Wednesday/Friday | |||
| 14 workshops | 7 pts each = 98 pts total | 71% programming |
| 11 required homework assignments | 4 pts each = 44 pts | |
| 12 Quizzes | 4 pt each = 48 pts | 24% assessments |
| Participation | 10 pts | 5% participation |
| Total | 200 pts |
|---|
| A | [190-200] | B+ | [173.3-180) | C+ | [153.3-160) | ||||
| B | [166.7-173.3) | C | [146.7-153.3) | D | [120-140) | F | <120 | ||
| A- | [180-190) | B- | [160-166.7) | C- | [140-146.7) | ||||
Extra Assignments: Bonus assignments may be offered periodically throughout the semester. These are opportunities to practice what you have learned at a higher level. It is in your best interest to complete as many as possible...it will make the later semester easier. 😁
In class worksheets: Periodically there will be worksheets given in class as group exercises. For each of these worksheets that you complete during the regular semester, you will earn 0.5 pts toward your final grade. Only one member of the group needs to submit each worksheet...just be sure that all group members "sign" the submission.
Other: Bonus points may be offered as part of regular assignments/quizzes/exams. It is recommended that you complete the base assignment/assessment first, as these points are worth much less than the base activity. However, as with Extra Assignments above, it is in your best interest to complete as many as possible. The more you code, the better you will get at it.
There are a total of fourteen weekly assignments in the workshop periods. Assignments will be started in the two hour workshop, then can be completed outside of class if necessary. Final workshops are due in the appropriate myCourses Dropbox before the next workshop session.
Workshops may not be submitted for credit more than one week late. Workshops get increasingly more challenging as the course progresses and build on the lecture discussion. Therefore, be certain to complete workshops on time. Late workshops will be penalized 0.25 pts.
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 assignments will generally expand upon the workshop assignments. Most will involve programming assignments. Homework is due before the workshop of the following week in the appropriate myCourses Dropbox. So the homework for Week 1 is due before workshop in Week 2. As with workshops, homework may not be submitted for credit more than one week late, and with a penalty of 0.2 points.
Quizzes will take place at the start of workshops, except for weeks with an exam.
If a makeup is approved for a specific quiz/exam, only makeup will be given, at a day and time to be determined by the instructor. So all students needing a makeup on quiz 1, for example, will take the makeup on the same date, time, and location. Let the instructor know as far in advance as possible, but not after more than 24 hours of the in-class assessment, if you need to take a makeup.
No electronics devices, caps, or hoods allowed during quizzes or exams.
Credit for participating will be based upon attending and being engaged for the full period of each session.
For the first offense, anyone caught plagiarizing or otherwise cheating will receive a 0 (zero) on the assignment/exam, 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 will also receive a grade of 0 (zero) for the first incident. 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 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. Sufficient evidence of cheating on a workshop or homework will be treated the same as for plagiarism or cheating in any other part of the course. The assignments will be automatically checked for cheating.
Also be aware that for this course the use of AI will be cheating. Please see the policy on Aritificial Intelligence use in this syllabus for more information.
Note that the class may receive official communication in person in class, by email, or in the myCourses Discussion group(s). Any and all are considered official communication methods.
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 of this RIT course may be prohibited by law.
All course materials are to be considered copyrighted by Dr. Michael V. Osier, all rights reserved. Any distribution of course materials outside of the immediate course purposes, including making material available to anyone not enrolled in the course, will be handled through all appropriate RIT and legal channels.
Unless written permission is granted by the faculty member, or a specific accommodation has been approved by the Disability Services Office, students are prohibited from recording lectures or presentations.
In making a determination about whether to grant a Late Course Withdrawl or Incomplete, the faculty member will consult with members of the RIT administration to gather the facts. At a minimum, the student must have experienced a major event that was not within their control at any point. All RIT and COS policies and procedures will be followed. For an Incomplete, this also means that the student must have been passing the course at the time the Incomplete was requested.
In the event of imminent disruption, such as due to weather, the class will follow the lead of RIT in making a determination of whether to move to online instruction or cancel class for the affected day(s). Changes to the syllabus will be made by Dr. Osier, potentially without student input, to retain the robustness of overall course content.
In order for a letter of recommendation to be written by Dr. Osier, the student must have earned a "A-" or better in any relevant course, have had no major issues (e.g. disciplinary), have a high quality academic record, and be of good character. In addition, the student must email Dr. Osier at least four weeks in advance with program information, a current transcript, a current CV, and a statement of what the student would like Dr. Osier to emphasize. Priority is given to students who ask first. Dr. Osier reserves the right to limit the number of letters of recommendation written given his availability.
Use of Artificial Intelligence (AI) for any purpose not expressly approved by the instructor will be treated as cheating, including any applicable penalties. AI should be used as a tool and not as a replacement for learning. Remember that AI is faulty, and can give incorrect answers. It also reduces your practice of the course material, which will set you behind for later assignments and other courses. So using AI doubles your risk.
As appropriate in this course, we will explore how AI can be used ethically. If you have any questions about whether or not AI usage is approved, please email the instructor or stop into office hours.
Contents last updated 3/19/26