22c:022

Object-Oriented Software Development

Department of Computer Science

The University of Iowa

Fall 2011

Course Syllabus

Lectures

TuTh 2:00pm - 3:15pm, LR2 VAN

Instructor

Prof. Cesare Tinelli
201D MLH
319-335-0735
cesare-tinelli(AT)uiowa(DOT)edu

Office hours: Mon 2:30-4:00pm, Thu 3:30-5:00pm, and by appointment

Teaching Assistants

Corey Oliver
201C MLH
319-353-2546
corey-oliver(AT)uiowa(DOT)edu

Office hours, in 301 MLH: Mon 12:30-1:30pm, Thu 11:30am-12:30pm, Fri 11:30am-12:30pm

Ethan Kerzner
201G MLH
319-335-0745
ethan-kerzner(AT)uiowa(DOT)edu

Office hours, in 301 MLH: Mon 4:00-5:00pm, Wed 1:30-2:30pm, Wed 4:00-5:00pm

Prerequisites

You must have passed 22c:16 and passed or be taking 22c:19 concurrently. Having passed 22c:21 is not required but is highly recommended to get the most out of this course.

Web Page

Most of the information about the class, including handouts and assignments, will be available from the class web site:

http://www.cs.uiowa.edu/~tinelli/22

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.

Course Purpose

The two main objectives of this course are to introduce software development, with continued emphasis on the separation of abstraction and implementation, and to extend programming skills and knowledge necessary for effective software development.

Building upon the basic competence students gained in 22c:016, the course focuses on developing professional-level programming competence, especially the ability to write large, multi-component programs and use advanced program developments methods and tools effectively. For that purpose, students are also introduced to the basics of software engineering and use that knowledge in a group project to (partially) develop a large software system. The course emphasizes the object-oriented paradigm and the development of large software system using existing libraries for graphics, networking, databases, concurrency, and user interfaces.

The language of instruction will be Scala.

Textbook and readings

The required textbook is

Object-Oriented Analysis and Design with Applications
by G. Booch et al. 3rd Edition.
Addison-Wesley, 2007.

available from local bookstores and in Kindle format from Amazon.

The recommended book for Scala is

Programming in Scala, Second Edition
by Martin Odersky, Lex Spoon, and Bill Venners.
Artima, 2010.

available from local bookstores and in electronic format directly from the publisher. A copy of this book is on reserve in the Engineering Library. Other Scala textbooks can be used in alternative.

Additional reading materials and handouts will be made available through the course web site.

Discussion sections and Teaching Assistants

There are 3 discussion sections associated with the class, each lead by one of the TAs. You should attend the discussion section you have registered for.

SectionTimeLocationTA
A018:30-9:20 Th60 SHCorey
A0212:30-1:20 Th105 MLHCorey
A033:30-4:20 Th105 MLHEthan

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 on programming assignments and projects, additional examples of Scala code and so on.

Pop quizzes will also be given throughout the semester during these sections. They will last about 15-20 minutes.

Computer accounts and software

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.

Homework

4-5 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 couple of 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.

Exams

There will be one midterm exam, during class time, and one final exam held as per university schedule.

Grading

The weighting of items in grade determination will be the following:

Homeworks 15%
Quizzes 10%
Projects 30%
Midterm 20%
Final Exam 25%

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.

Score  Grade
90 <= x < 100 A
75 <= x < 90

B

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.

Cheating

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 DEO and the college. Repeated offenses will lead to suspension or expulsion from the University.

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).

Course Policies

Communicating with the instructors: The instructor and the TAs welcome email questions related to the course and will try to answer within 12 hours of e-mail receipt. Please include 22c:22 in the subject line to help us get to your e-mail quickly.
We will occasionally send email announcement to all students in the class and you are responsible for all official correspondence sent to your Hawkmail address (@uiowa.edu). Make sure that you check this email account regularly. We would also prefer receiving emails from your Hawkmail account, rather than from commercial e-mail providers (e.g., Gmail or Yahoo).
We will insist that we all start our e-mails with the recipient's name (not "Hey" or just blank) and end our e-mails with the sender's name. As a matter of professionalism, please address the instructor as "Prof. Tinelli". Good manners dictate that you acknowledge the receipt of an email from us in response to a request from you.

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.

General CLAS Policies

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 Academic Policies Handbook.

Academic Honesty: The College of Liberal Arts and Sciences expects all students to do their own work, as stated in the CLAS Code of Academic Honesty. Instructors fail any assignment that shows evidence of plagiarism or other forms of cheating, also reporting the student's name to the College. A student reported to College for cheating is placed on disciplinary probation; a student reported twice is suspended or expelled.

Making a Suggestion or a Complaint: Students with a suggestion or complaint should first visit the TA, then the course instructor and the departmental DEO. Complaints must be made within six months of the incident. (See the Academic Policies Handbook for more information.)

Accommodations for Disabilities: A student seeking academic accommodations should register with Student Disability Services and meet privately with the course instructor to make particular arrangements.

Understanding Sexual Harassment: Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. www.sexualharassment.uiowa.edu

Reacting Safely to Severe Weather: In severe weather, the class members will seek shelter in the innermost part of the building, if possible at the lowest level, staying clear of windows and free-standing expanses. (Operations Manual 16.14. i.)