Main section: 9:30-10:20 MWF Room W10 PBB (John Papajohn Business Building)
Evening section: 5:00-6:45 MW, Room 118 MLH (MacLean Hall)
Sriram V. Pemmaraju (Main section)
101G MLH, firstname.lastname@example.org, 319-353-2956
Office Hours: To be announced
Alberto M. Segre (Evening section)
14D MLH, email@example.com, 319-335-1713
Office Hours: To be announced
Course website: http://www.cs.uiowa.edu/~sriram/16/spring13/
Department website: http://www.cs.uiowa.edu/
Computer Science I: Fundamentals is an introductory course on computer programming with an emphasis on problem solving techniques. During the semester, students will gain proficiency in skills that are fundamental to solving computational problems, namely: (i) reading and understanding descriptions of computational problems that may sometimes be stated incompletely or imprecisely, (ii) breaking down a computational problem into simpler subproblems, (iii) designing algorithms for computational problems, (iv) translating algorithms into pseudocode and then into programs, (v) testing and debugging prgrams, and (vi) understanding time efficiency and memory usage of programs. Students will learn the importance of iterating through the above sequence of steps to build correct, well-documented, efficient, and reusable programs. The key programming topics include variables, expressions, data types, control flow statements, functions, data structures, objects and classes. The course will use the Python programming language. Python can be used interactively and can be accessed on Linux/Unix, Mac, and Windows platforms. The course is the starting point for computer science major and minor curricula, and also useful to other majors as a rigorous introduction to programming and solving computational problems. This semester the course has two sections. The "main section" (CS:1210:0AAA, 22C:016:AAA) consists of three lectures per week, with an additional discussion section that meets once per week. The "evening section" section (CS:1210:0SCA, 22C:016:SCA) meets twice a week, with no separate discussion sections.
Students are not required to have previous computer programming experience, but basic knowledge of how to use a computer (word processing, using a web browser) is assumed; students should have competency with basic arithmetic and algebra (formally, this means 22M:005 or MPT II score of 20 or above or MPT III score of 10 or above).
There is no required textbook for this course. All lecture slides will be published via the course web site. The instructors will also post practice problems and solutions to quizzes, homeworks, projects, and exams and all together these will form a significant additional resource. There are a number of excellent resources for Python and free Python textbooks that are available online. Links to readings from these will be posted on the course page as the semester progresses.
Schedule and Tentative List of Topics
The course is broken up into three parts, each part will take roughly 5 weeks and will end with an exam. The three parts of the course and the corresponding schedule is given below.
The course has 3 teaching assistants (TAs), who are graduate students in the computer science department. Two of them will lead two discussion sections each and the third TA will lead one. Discussion sections meet on Tuesdays according to the schedule provided below. Note that there are no separate discussion sections for students in the evening section.
You should think of the TAs as the front-line for getting help in this course. Together they will have 9 office hours per week, spread through the week and will also answer questions by e-mail and on the phone. You should feel free to see any TA, not just the one who leads your discussion section. Contact information and office hours for the TAs will be posted shortly on the course webpage. The discussion sections will complement the lectures in a variety of ways and will provide opportunity to deepen your understanding of the material covered in the lectures. Due to their small size, the discussion sections will provide an environment in which it is easier to ask questions and have interactive discussions.
Plus/Minus grading will be used for the course. There are the four components that will determine your grade.
Late submissions will not be accepted and in general you will be better off turning in what you have on time rather than seeking extra time to complete your work. Starting early is the key, and the TAs and the instructors will be glad to help with any questions you may have on the assignments. So please visit us often during our office hours and if necessary, outside our office hours as well. There will be no make-up exams in general and exceptions will be provided only for students whose reasons are included in the University's policy on "Excused Absences from Examinations". Excused absence forms are available at the Registrar's website.
Homeworks and programming projects will have to submitted via ICON's dropbox feature. Grades will also be published on ICON. Solutions will be provided on the course page for all the homeworks. We will not be marking attendance, however over the years we have noticed a strong correlation between attendance and performance in the course.
Communicating with instructors and TAs Asking the instructors and TAs questions by e-mail is quite appropriate and we will try to answer any e-mails related to 22C:16 within 12 hours of e-mail receipt. You should make sure to include 22C:16 in the subject line to help us get to your e-mail quickly. Try to state your question as clearly as possible. The more easily understood you are, the more likely it is that you will receive a quick response. We will occasionally send e-mail announcement to all students in the class and you are responsible for all official correspondence sent to the UI address (@uiowa.edu). Make sure that you check this e-mail account regularly. We would also prefer receiving e-mails from your uiowa account, rather than from commercial e-mail providers (e.g., gmail or yahoo!). Any e-mail responses we send will be to your uiowa address.
We will try to call you by your preferred name. As a matter of professionalism, you should refer to the instructors as "Prof. Pemmaraju" or "Dr. Pemmaraju" and "Prof. Segre" or "Dr. Segre."
Effort Level Successful completion of this course will provide a sound foundation for the rest of the computer science major and can eventually lead to a satisfying career in computing. However, success in this course will only come about as a result of a great deal of consistent focus and effort and "deliberative practice." According to University guidelines, a student should expect to work for 2 hours per week (outside the classroom) for each course credit. This is a 4 credit course and so you should expect to spend on average about 8 hours per week reading lecture notes, solving homeworks, completing programming projects, preparing for quizzes, etc. However, the "8 hours per week" estimate is an average and also presupposes that you attend classes and discussion sections, visit faculty and TAs with questions during their office hours, and are in general thoughtful about how you approach the material.
You will need CS course accounts to use the machines in the computer lab (301 MLH). Some of you may already have such accounts; the rest of you will get CS accounts by the end of the first week. You will also need a HawkID and a password to login to ICON to electronically submit your assigned work.
This course is run by the Computer Science department which is part of the College of Liberal Arts and Sciences. This means that class policies on matters such as requirements, grading, and sanctions for academic dishonesty are governed by the College of Liberal Arts and Sciences. Students wishing to add or drop this course after the official deadline must receive the approval of the Dean of the College of Liberal Arts and Sciences. Details of the University policy of cross enrollments may be found online here.
Students with disabilities
We would like to hear from anyone who has a disability which may require seating modifications or testing accommodations or accommodations of other class requirements, so that appropriate arrangements may be made. Please contact me during my office hours.
Academic dishonesty will not be tolerated. Under no circumstances should you pass off the work of someone else as your own. This also applies to code or other material that you might find on the internet. Note that we will routinely use available software systems for detecting software plagiarism, to test any suspicions we might have. If you are unclear about what constitutes academic dishonesty contact your professors or consult the policy in the CLAS Bulletin (online version). We do want students to talk to each other about concepts and ideas that relate to the class. However, it is important to ensure that these discussions do not lead to the actual exchange of written material.
If you have any complaints or concerns about how the course is being conducted by the instructors or by the TAs please feel free to talk to the instructors. You are also welcome to get in touch with Prof. Alberto Segre, in his role as the Computer Science department chair (firstname.lastname@example.org, 319-335-1713, 14D MacLean Hall). If you want discuss the course with a computer science faculty member who is not involved in running the course, you can see Prof. Jim Cremer, the previous Computer Science department chair (email@example.com, 319-321-1893, 101P MacLean Hall). Consult the college policy on Student Complaints Concerning Faculty Actions (online version) for more information.
Showing up to class late, leaving your cell phone ringer on, reading the "Daily Iowan" in class etc. can be quite distracting to the instructor and fellow students. If you are in class, it is your responsibility to pay attention and to make sure that you are not doing anything that makes it harder for fellow-students to pay attention. When disruptive activity occurs, a University instructor has the authority to determine classroom seating patterns and to request that a student exit immediately for the remainder of the period. One-day suspensions are reported to appropriate departmental, collegiate, and Student Services personnel (Office of the Vice President for Student Services and Dean of Students).
University Statement on Sexual Harassment Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. All members of the UI community have a responsibility to uphold this mission and to contribute to a safe environment that enhances learning. Incidents of sexual harassment should be reported immediately. See the UI Comprehensive Guide on Sexual Harassment for assistance, definitions, and the full University policy.
Reacting Safely to Severe Weather
In severe weather, class members should seek appropriate shelter immediately, leaving the classroom if necessary. The class will continue if possible when the event is over. For more information on Hawk Alert and the siren warning system, visit the Public Safety web site.