Fall 2017 CS111: Program Design I Syllabus Version: Aug. 29 Room Lecture Main website Lecture Center C3, East Campus, University of Illinois at Chicago Tue & Thu 12:30 1:45pm https://www.cs.uic.edu/cs111green/ Instructors and TAs Instructor/TA Office Hours Prof. Robert Sloan (CS) Tuesdays 2:30 4:00 1112 SEO Prof. Rachel Poretsky (Bios) Thursdays 2:30-3:30, SEL 4100 TA: Zhu ( Ellen ) Wang, zwang260@uic.edu Mondays 4:30 6:30, 4030 SEL TA: Mao Li, mli206@uic.edu Wednesdays 1:00 3:00, 4029 SEL Senior Undergraduate TA: Joseph Torres, jtorre79@uic.edu Duties, hours, TBD Undergrad TAs: Funmilola Akintoye, fakint3@uic.edu Daisy Arellano, darell3@uic.edu hours TBA Overview This course is intended for students with little to no prior programming experience who are: 1. Interested in seeking a major or minor in Computer Science, and/or 2. College of Engineering majors who wish to pursue the CS 111-141 path to meeting their computing requirement, and/or 3. Interested in biology in a computer science context, and/or 4. Interested in computer science in a biological context Other students are more than welcome to join CS111 or may wish to check out the similar (but less intense) course of CS100. Topics Introduction to programming: control structures; variables and data types; problem decomposition and procedural programming; input and output; aggregate data structures including arrays; programming exercises. Learning Objectives By the end of the course you will: 1. Be able to read, understand, make functional alterations to, and create, through assembling very small code fragments, small Python programs (less than 100 lines) that achieve useful tasks. 2. Be able to design, implement, test, and debug (from scratch) a very small Python program that uses multiple standard control structures (e.g., conditional/if and iteration, or two iterations), which may be nested. 3. Gain a basic understanding of biology, which includes being able to: Describe the fundamental organization of life. Explain general functions at the molecular, cellular, and population levels. Apply programming skills to biological data. 1
4. Appreciate what computer scientists do and the key concerns of that field that relate to students professional lives: Students will recognize that all digital data is an encoding or representation, and that the encoding is itself a choice. Students will understand that all algorithms consist of manipulating data, iteration (looping), and making choices at the lowest level, about numbers, but we can encode more meaningful data in terms of those numbers. Students will appreciate the value of a programming vs. direct-manipulation interface approach to computer use and will be able to describe situations where the former is preferable to the latter. Textbook and Website Required texts We will be using the online Programming in Python 3 with Zylabs from Zybooks; you will need to pay for a semester s subscription. Directions: 1. Sign in or create an account at learn.zybooks.com 2. Enter zybook code UICCS111Fall2017 3. Subscribe A subscription is $38 and will last until Dec 29, 2017. You will probably find it helpful to read How to use zybooks located in your zybooks library once your account is created. Biology-themed content will come from (free) OpenStax Concepts of Biology, https://openstax.org/ details/books/concepts-biology. If you prefer, you can download a PDF version for free or buy a copy on ibooks/amazon/etc. Additional readings will be provided as appropriate Optional text Ron Libeskind-Hadas and Eliot Bush, Computing for Biologists: Python Programming and Principles. It s in the bookstore, and much of the material for the first few weeks comes from it, but it is purely optional. We will not be following it for most of the semester. Web, Piazza, Blackboard Most materials, such as lecture slides, and the updated syllabus and schedule, will be posted to the worldreadable webpage for this course. The labs, lab quizzes, grades, and lecture capture are available on Blackboard. There is also a forum for course help on Piazza at piazza.com/uic/fall2017/cs111green/home. You are responsible for checking blackboard every week and making sure you are doing all the work. You are responsible for knowing about all of the material distributed for this class, whether is is mentioned in the syllabus, posted on Blackboard, posted on Piazza, or announced during lecture. FA2017 CS111 Syllabus 2
Course Requirements (Grading) Subject to change at any time for any reason Labs, lowest three dropped, (20%) Lab Quizzes, lowest two dropped (5%) Completion of ZyBooks readings and associated activities on time, (5%) Programming Projects (25%) Two midterms (20%) One final exam (20%) Class attendance and participation (clickers) (5%). Peer Instruction We will be using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction. You will be expected to attend all lectures, having completed the assigned reading and ready to discuss with your classmates. Class Participation Participation is an incredibly important facet of this course. The baseline Class Participation grade will be from answering in-class clicker questions. However, extra credit points may be added for substantial contributions, entirely at the instructors discretion. Exceptional participation includes early reports of errors in assignments, helpful discussion on Piazza, contribution of helpful code to the common good of the class (e.g. test cases and/or testing scripts) and thoughtful discussions during lecture. Fair Warning This is not a lecture-oriented class or one in which mimicking prefabricated examples will lead you to success. You will be expected to work actively to construct your own understanding of the topics at hand, with the readily available help of the professor and your classmates. Many of the concepts you learn and problems you work will be new to you and ask you to stretch your thinking. You will experience frustration and failure before you experience understanding. This is part of the normal learning process. Your viability as a professional in the modern workforce depends on your ability to embrace this learning process and make it work for you. You are supported on all sides by the professor and your classmates. But no student is exempt from the process and the hard work it entails. FA2017 CS111 Syllabus 3
Homework and Late Policy Lab assignments will be given out in lab on Mondays and are due by 11:59 pm on Wednesday of that week. Exceptions for the start of the semester: The very first lab is due by 11:59 pm on Thursday to accommodate students switching between CS 111 sections Week 1. As there is no class on Labor Day, the Monday of Week 2, a short lab will be given to you to do at home without a lab session. No late lab assignments will be allowed for this course. Lab quizzes will be given almost every week. You must be present at the lab to get credit for the quiz. We will drop your three lowest quiz and lab scores. You have two late days you can use on the programming assignments, so you can turn in two programming assignments 1 day late without penalty, or a single assignment 2 days late. Once you have used your late days, late assignments will not be accepted. If you wish to use late days for a lab, you must fill out the form on Blackboard before the due date. Suggestion: Save your late days for the programming assignments, because each one of those counts for a bigger fraction of your grade. All assignments (lab and programming) are to be turned in electronically via Blackboard. If you have any questions regarding how any assignment or test is graded and you think that you deserve more points than you received, you must see the instructor about this within one week of the time the assignment is first returned to the class. No claims, justifiable or not, will be considered after this dead line. No extra work is allowed to make up for poor performance. No incompletes will be given for poor performance in the course. Student Disabilities If you have a disability that might impact your performance in this course, or requires special accommodation, please contact us as soon as possible so that appropriate arrangements can be made. Support is available through the Disability Resource Center (https://drc.uic.edu/). You will need to contact them to get your disability documented before accommodations can be made. Academic Dishonesty Consulting with your classmates on assignments is encouraged, except where noted. However, turn-ins are individual, and copying code from your classmates is considered plagiarism. For example, give the question how did you do X?, a great response would be I used function Y, with W as the second argument. I tried Z first, but it doesn t work. An inappropriate response would be here is my code, look for yourself. To avoid suspicion of plagiarism, you must specify your sources together with all turned-in materials. List classmates you discussed your homework with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their turned-in materials. Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc, is obviously prohibited, is grounds for failing the course, and will be reported. We will be running MOSS, an automated plagiarism detection tool, on all hand-ins. Any student caught cheating will receive an F in the course, and face possible dismissal from the University. Students are advised that it is a violation to copy, or allow another to copy, all or part of an exam or program. FA2017 CS111 Syllabus 4
Calendar of Selected Major Course Events and Deadlines Date Mon., Aug. 29 Tue., Aug. 30 Wed., Aug. 31 Mon., Sept. 4 Fri., Sept. 8 Thu., Sept. 21 Fri., Nov. 3 Tue., Nov. 7 Fri., Dec. 8 Fri, Dec. 15 Event UIC Semester begins; first lab meeting First lecture Register your clicker and do assigned reading before 2nd meeting of class Labor Day: Labs do not meet Last day to complete late registration; last day to add a course(s) or make section changes; last day to drop individual courses via Student Self-Service without receiving W (Withdrawn) grade on academic record. First hour exam (tentative: may be moved later) Last day for undergraduate students to use optional late drop in college office and receive grade of W on academic record. Second hour exam (tentative) Instruction ends Final Exam: 8:00 10:00 a.m. FA2017 CS111 Syllabus 5
Schedule [This is a highly preliminary schedule for CS111 from CS111-green-schedule-FA2017.docx ] Notes & Assignments Week Date Lecture Topic Reading HW/Lab 1 8/28 Lab (A first taste of Python) Hello world (user name) 8/29 Why computer science + biology? CiB 1.1 8/31 Introduction to Computer Science (+ Bio ) (biological hierarchy) CiB ch. 9 Zybook 1.1 1.5, 1.6 1.8 2 9/4 No class- Labor Day 9/5 Variables and strings (DNA) Zybook, rest of Chapt. 1, 2.1 2.2, 3.1 9/7 Strings, sequences & indices (Genbank) 3 Lab2 GenBank and proteins 9/12 Slicing & lists (Genbank) 9/14 File I/O (Proteins) 4 Lab3 Read files Files and sequences 9/19 Strings & functions 9/21 Tentative Exam I (may move later) 5 Lab4 DNA comparison 9/26 Exam review 9/28 Exam 6 Lab5 Nested loops 10/3 Control flow & first loop: if, elif, else (%GC, transcription, strand orientation, ORF ) FA2017 CS111 Syllabus 6
10/5 Loops (%GC, transcription, strand orientation, ORF ) 7 Lab6 Fasta? 8 Lab7 10/10 Loops (Genes, GC, pathogenicity islands) 10/12 More loops 10/17 Prof. Sloan traveling Still loops 10/19 And loops 9 Lab8 Return v print 10/24 10/26 10 Lab9 Project 1 due (ORFs) Strings, Loops 10/31 While loops 11/2 (Heredity) Random sequences 11 Lab10 Length to start 12 Lab11 11/7 Append, extend, functions (population genetics) 11/9 Random numbers, probability 11/14 Exam review 11/16 Exam 13 Lab12 Project 2 due (population genetics) Plotting in Python 14 Lab13 11/21 Dictionaries 11/23 NO CLASS: thanksgiving FA2017 CS111 Syllabus 7
11/28 (evolution) 11/30 (evolution) 15 Lab14 12/5 Dictionaries 12/7 Review 16 Finals week FINAL EXAM Project 3 due (sequence evolution) FA2017 CS111 Syllabus 8