MWF 9:30   in   Shambaugh Auditorium LIB

...plus discussion sections:
  1) TTh 12:30 in 210 MLH
2) TTh 9:30 in 110 MLH
3) TTh 10:30 in 110 MLH
  4) TTh 11:30 in 113 MLH
5) TTh 2:30 in 214 MLH
6) TTh 1:30 in 205 MLH  



The instructor

Gregg Odén

[10:30 M, W & by appt. in 101G MLH, 335-0743]
oden@cs.uiowa.edu


with the assistance of...
    Tony Pope         [10:30 M, W, F in 201C MLH]    appope@cs.uiowa.edu
    Lin Chen         [3:30 M, W, F in 101E MLH]    lichen@cs.uiowa.edu
    Jim Olsen         [2:00-3:20 T, Th in 201C MLH]    jolsen@cs.uiowa.edu

 

The course

The objectives of this course are to introduce software development methodology with continued emphasis on the separation of abstraction and implementation, and to extend programming skills generally and with specific regard to network programming, concurrency, graphics and multimedia, and user interface programming. The course focuses on developing professional-level programming competence, especially the ability to construct correct programs and to use advanced program development tools effectively. In addition, the course provides a basic understanding of the character of machine organization and its relationship to the nature of computation. It also gives an informal introduction to the analysis of data structures and algorithms, particularly as these analyses pertain to effective programming. This course provides a continuation of the presentation of skills and knowledge necessary for effective software development building upon the basic competence students gained in 22C:016.


The assignments

There will be two midterms exams each covering one section of the course as shown on the schedule (over) and a final exam covering the third section plus the course as a whole. In addition, there will be homework assignments every week or so for the first half of the course and then every other week or so plus a course project. Exam 1 will count 10% toward the course grade, Exam 2 will count 20%, the final exam will count 30%, and the homework and the project together will count 35%. The remaining 5% will be based on discussion group participation, as determined by each teaching assistant.

Course grades will be determined on the basis of the resulting final distribution of numerical scores (See note #4). My current expectation is that about a sixth or so of those originally enrolled in the class will get A grades (that is, A+, A or A-), about a third will get B grades, and another third will get C grades. However, these proportions will be adjusted to reflect overall class performance. That is, if it turns out that this class does better than expected, then there will be more good grades; if it does worse, then there will be fewer good grades. I will periodically provide updated information about the expected distribution of grades as we go along through the semester so you will have a good idea of where you stand.


The texts

       







Just Java 2
by Peter van der Linden

    Using UML
by Rob Pooley & Perdita Stevens

OR

Developing software with UML
by Bernd Oestereich





The schedule

week topics [ vdL=Just Java; P&S=Using UML; O=Developing Software ]

Section I
1 The craft of software development; the analysis phase [ P&S: 4, 7; project requirements ]

2 Java application programming and UI layout [ vdL: 3 (1st half), 18 (1st third), 19 ]

3 Java classes: interfaces & implementations [ vdL: 2 ; P&S: 1 (3), 2 (1) ]

4 Object orientation: inheritance, polymorphism, abstraction [ vdL: 6, 8, 9 ; P&S: 2 (3,4), 14 (1) or O: 2 ]

5 Basic data structures [ vdL: 15 ]

EXAM 1: 9/27 key

Section II
6 Software design and construction [ P&S: 3, 5, 9, 11, 18 (2) or O: 4 (2nd half), 5, 7, 8, 9 ]

7 Java graphics and event-driven user interfaces [ vdL: 17, 18, 19, 20 ]

8 Java graphics and UI (continued)

9 Errors and bugs: exception handling, debugging, and software verification [ vdL: 7 ]

10 Errors and bugs: (continued)

EXAM 2: 11/1 key

Section III
11 I/O and network programming [ vdL: 16, 21, 22 ]

12 Data representations and machine organization; recursion [ vdL: 3 (2nd half) ]

13 Algorithms and algorithm analysis

14 Concurrent programming [ vdL: 10, 11 ; P&S: 10 (2) ]

15 Hot topics (such as servlets, XML, JavaSpaces, JPython, etc.)

FINAL EXAM: Wednesday 12/15 at 12:00pm in Sham LIB
example final exam


The fine print

  1. I will be happy to make reasonable accommodations for students with disabilities. Accordingly, I would like to hear from anyone who has a disability that may require modification of seating, testing, or other class arrangements.

  2. Both students and professors have rights and responsibilities. One responsibility that we share is to be familiar with College of Liberal Arts policies regarding procedures to be followed in the event of your misconduct or mine. These policies can be found at the College's website and on pages 43-44 of the Fall '99 Schedule of Courses. In general, please do not hesitate to discuss with me any questions or concerns you may have. If, in addition, you would like to talk with the department chairman, Dr. Steven Bruell, appointments can be made with the staff in the department office, 14 MLH.

  3. You are expected to honor copyright laws pertaining to use of software packages that are available to you in the labs, in the ITCs and in any other situation in this course.

  4. Grades and discussion notes will be posted on the course WebCT page.

  5. Makeup exams will be provided only for documented legitimate reasons.

  6. Class attendance will not be recorded but the most important stuff will happen in class.

  7. This syllabus is available at http://www.cs.uiowa.edu/~oden/courses/cs20.html .