TuTh 2:00pm - 3:15pm, 301 LC
Prof. Cesare Tinelli
Office hours: Mon/Wed 5pm-6pm, Tue 3:30pm-5pm, and by appointment.
Frank (Peng) Fu
Office hours, in 301 MLH:
Office hours, in 301 MLH: Wed 8:00am-9:30am, Thu 10:30am-12noon
You must have passed 22c:021 (CS II) to be able to take this course.
Most of the information about the class, including handouts and assignments, will be available from the class web site:
Students are expected to check both the web site and its related ICON site on a regular basis (at least every other day) for announcements regarding the course.
The goal of this course is to educate students on how to develop large software systems using objected-oriented analysis, design, programming and testing techniques building upon the basic competence students gained in 22c:016 and 22c:021.
Students are introduced to the basics of software engineering, with an emphasis on requirement analysis and system design, and use that knowledge in group projects to (partially) develop a software system of substantial size. The course also aims at developing professional-level programming competence further using the object-oriented paradigm and associated concepts of classes, objects, methods, inheritance, and polymorphism. However, it focuses more on the creation of large, multi-component programs using existing libraries for graphics, networking, databases, concurrency, and user interfaces.
The programming language of instruction will be Scala, a modern and advanced multi-paradigm language that supports well the instruction goals above.
The required textbook is
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edition
by C. Larman.
Prentice Hall/Pearson, 2005.
The recommended book for Scala is
Programming in Scala, Second Edition
by Martin Odersky, Lex Spoon, and Bill Venners.
Additional reading materials and handouts will be made available through the course web site.
There are 3 discussion sections associated with the class, each led by one of two TAs. You should attend the discussion section you have registered for.
You should think of the TAs as the front-line for getting help in this course. Together they will have 6 office hours per week, spread through the week and held in the in CS computer lab in 301 MLH. They will also answer questions by email and on the phone.
The discussion sections will complement the lectures in various ways and give you the chance to deepen your understanding of the material covered in the lectures. In the beginning of the semester, the TAs will spend time on Scala programming and using a couple of Scala IDEs. As the semester progresses, the discussion sections will provide specific guidance homework assignments and projects, additional exercises and examples and so on.
For this course, it is helpful to use your account on computer science machines because they will have a working installation of the software tools used in class. Instructions on how to access those machines, on-site or remotely, and use the installed software will be provided on the course website and during the discussion sections.
Although you are welcome to your own computer for course work, you are responsible for installing all the necessary software. We regret that will not be able to provide assistance for any problems with your own installation.
Pop quizzes will be given throughout the semester during these the lecture and the discussion periods. They will last about 15 minutes.
A few individual homework assignments will be given during the course of the semester, covering the material from the textbook and the lectures. The assignment will be distributed and collected electronically through ICON.
There will be a course projects, to be done in small teams. More information on them will be posted on the course website.
The instructor and the TAs 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 one final exam, held as per university schedule, and one midterm exam during class time in October. The exact date of the midterm will be announced on the course website later in the semester.
The weighting of items in grade determination will be the following:
The following cutoffs will be used to determine letter grades. In the ranges below, x stands for your total score at the end of the semester. Final scores near a cutoff will be individually considered for the next higher grade. Plus(+) and minus(-) grades will also be given; their cutoffs will be determined at the end of the semester.
|90 <= x < 100||A|
|75 <= x < 90||
|60 <= x < 75||C|
|40 <= x < 60||D|
|00 <= x < 40||F|
Grades are not curved in this course. It is theoretically possible for everyone in the class to get an A, or an F. Your final grade depends only on your own performance and not on that of others.
Academic dishonesty will not be tolerated. In particular, under no circumstances should you pass off someone else's work as your own. This also applies to code or other material that you might find on the internet.
Sharing solutions of graded assignments, or copying someone else's work will result in a zero on the assignment and a report to the department's chair and the college.
Students are encouraged to discuss concepts and ideas that relate to the class and the assignments. However, it is important to ensure that these discussions do not lead to the actual exchange of written material. If you are unclear about what constitutes academic dishonesty contact the instructor or consult the CLAS policy (online version).
Communicating with the instructors: The instructor and the TAs welcome email questions related to the course and will try to answer within 24 hours of e-mail receipt.
Assigned Readings: Students are expected to study all the material in each chapter covered in the readings, even if that material is not explicitly discussed in class or in the homeworks.
Optional Readings and Discussions: You are encouraged to consult material besides the required readings, including both reserve books and other on-line material, even if there is no directed outside reading assignment. You are also encouraged to discuss the course topics with their classmates. It is a genuinely helpful learning activity having to formulate one's own thoughts about the material well enough to express them to others.
Attendance: Students are expected to attend all classes. Your knowledge and therefore your grade depends on it. You are responsible for all announcements and material covered during class even if you did not attend.
Late Submissions: Late submissions will not be accepted. 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 crucial, especially to completing the programing assignments on time.
Extra Credit: No extra-credit assignments or tests will be given on an individual basis (although they maybe given to the whole class).
Make-up Exams: Make-up exams will be offered only if there is a serious, documented reason for not being able to attend a scheduled exam, as specified in the University's policy on "Excused Absences from Examinations".
Regrading: Students thinking a graded assignment or a test has been misgraded and deserves a regrading are invited to let the TAs or the instructor know. We welcome and will give full consideration to all well motivated regrading requests.
Administrative Home: The College of Liberal Arts and Sciences is the administrative home of this course and governs matters such as the add/drop deadlines, the second-grade-only option, and other related issues. Different colleges may have different policies. Questions may be addressed to 120 Schaeffer Hall, or see the CLAS Academic Policies Handbook at http://clas.uiowa.edu/students/handbook.
Electronic Communication University policy specifies that students are responsible for all official correspondences sent to their University of Iowa e-mail address (@uiowa.edu). Faculty and students should use this account for correspondences (Operations Manual, III.15.2, k.11).
Accommodations for Disabilities: A student seeking academic accommodations should first register with Student Disability Services and then meet privately with the course instructor to make particular arrangements. See www.uiowa.edu/~sds/ for more information.
Academic Honesty: All CLAS students have, in essence, agreed to the College's Code of Academic Honesty: "I pledge to do my own academic work and to excel to the best of my abilities, upholding the IOWA Challenge. I promise not to lie about my academic work, to cheat, or to steal the words or ideas of others; nor will I help fellow students to violate the Code of Academic Honesty." Any student committing academic misconduct is reported to the College and placed on disciplinary probation or may be suspended or expelled (CLAS Academic Policies Handbook).
CLAS Final Examination Policies: The final examination schedule for each class is announced around the fifth week of the semester by the Registrar. Final exams are offered only during the official final examination period. No exams of any kind are allowed during the last week of classes. All students should plan on being at the UI through the final examination period. Once the Registrar has announced the dates and times of each final exam, the complete schedule will be published on the Registrar's web site.
Making a Suggestion or a Complaint: Students with a suggestion or complaint should first visit with the instructor (and the course supervisor), and then with the departmental DEO. Complaints must be made within six months of the incident (CLAS Academic Policies Handbook).
Understanding 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 http://www.sexualharassment.uiowa.edu/ 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 Department of Public Safety website.