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 by Jon Woodcock ISBN 978-1465439352 |
Suggested Text: | Java: A Beginner's Guide, 8th Edition, by Schildt. ISBN 978-1260440218 |
Meetings | lecture: MW 9:05-9:55am, Zoom |
Workshop: F 8-9:55am, Zoom |
Instructor: | Michael Osier |
Office: | 08-1338 |
Instructor Schedule | http://bulgogi.rit.edu/~mosier/lab/courses/fall_sched21.html |
Contact: | COS directory |
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 23 | Introduction and Algorithms | Basic statements, Scratch | Quiz 1, Assignment 1 - Scratch Star Hunter (Scratch) | HW 1 - Modifying Star Hunter | |
Week 2 | Aug 30 | Loops and Conditionals (Online reserves: "Think Like a Programmer" Chapter 1) | Data types | Quiz 2, Assignment 2 - Circle Wars (Scratch) | HW 2 - Predator/Prey simulator | |
Week 3 | Sept 6 | No class Monday | Concepts of drawing | Quiz 3, Assignment 3 - Drawing fractal trees (Scratch) | HW 3 - Logistic growth | |
Week 4 | Sept 13 | Subroutines in Scratch | Linux command line and editors | Quiz 4, Assignment 4 - Linux command line | Exam review | |
Week 5 | Sept 20 | Exam 1 | Introducing Java - Loops and Conditionals | Assignment 5 - Fill-in-the-blanks (Java) | HW 4 - More complex blanks to fill | |
Week 6 | Sept 27 | Java primitive data types and math operations | Arrays, strings, and string operations | Quiz 5, Assignment 6 - DNA sequence GC content (Java) | HW 5 - Array worksheet | Sliding Window |
Week 7 | Oct 4 | Subroutines/functions/methods | Sorting | Quiz 6, Assignment 7 and HW 6 - Finding protein domains | Variable protein domains | |
Week 8 | Oct 11 | No class Monday | Sorting | Quiz 7, Assignment 8 and HW 7 - Finishing protein domains | ||
Week 9 | Oct 18 | Classes and objects, Reusability of code, Case/Switch statements | Quiz 8, Assignment 9 - Sorting competition (Java) | HW 8 - Sorting parallel arrays | Sorting worksheet | |
Week 10 | Oct 25 | File I/O | File I/O and catchup | Quiz 9, Assignment 10 - DNA k-mers | Exam review | Find the Errors: FastQ average length |
Week 11 | Nov 1 | Exam 2 | AWT and Swing | Assignment 11 and HW 9 - Conway's Game of Life (Java) | Conways' Game of Death | |
Week 12 | Nov 8 | Memory, pointers and linked lists | Hash maps | Quiz 10, Assignment 12 and HW 10 - Complete Game of Life (Java) | ||
Week 13 | Nov 15 | Queues and stacks | Building trees by insertion | Quiz 11, Assignment 13 and HW 11 - DNA k-mers with hash maps (Java) | Deduplicating FastQ files | |
Week 14 | Nov 22 | Catchup and practice | No class Wednesday or Friday | Predator/Prey (due before final exam) | ||
Week 15 | Nov 29 | Traversing trees - Iterative vs recursive | Deleting from and balancing trees | Quiz 12, Assignment 14 - Stack/Queue/Tree practice | Exam review | Find the errors |
Week 16 | Dec 6 | Catchup and review | No class Wednesday/Friday |
14 workshops | 2.5 pts each = 35 pts total | 57% programming |
11 required homework assignments | 2 pts each = 22 pts | |
12 Quizzes | 1 pt each = 12 pts | 38% testing |
2 exams | 8 pts each = 16 pts | |
Final Exam | 10 pts | |
Attendance | 5 pts | 5% attendance |
Total | 100 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 |
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 the next Wednesday before class.
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 Fridays of the following week before class in the appropriate myCourses Dropbox. So the homework for Week 1 is due before class on Friday, September 3rd. 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 Friday workshops, except for weeks with a Monday exam. To take the quiz, you must start it in myCourses on time. It is highly recommended that you login to Zoom, too, in case you have questions during the quiz.
If needed, only one quiz/exam makeup will be given per 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, time, and location. Let the instructor know as far in advance as possible if you need to take a makeup.
Credit for attendance will be based upon the percent of sessions (lecture and workshop) for which students attend the full period with cameras on.
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.
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.
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.
We are all aware of the unique circumstances of this fall semester 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. 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 10/21/21