Pitt Logo SIS Logo

INFSCI 0017 - Fundamentals of Object-Oriented Programming

(Fall 2012, CRN 16686)


[ Formal Data | Course Tools | Syllabus | Course Books | Course Schedule | CourseWeb | Knowledge Tree ]


Syllabus

Course Objective

Upon successful completion, the student will be able to do the following:

    1. Employ a ‘divide and conquer’ problem-solving strategy to breakdown a complex programming assignment into a series of simpler tasks.
    2. Recognize the critical importance of complying with a detailed software requirements specification.
    3. Efficiently use an industry-leading Integrated Development Environment (IDE) to develop and manage software projects.
    4. Develop programs that appropriately utilize key object-oriented concepts (e.g., abstract classes, interfaces, inheritance & polymorphism).
    5. Employ unit testing techniques, using an industry-leading testing framework (JUnit), to ensure correct program execution.
    6. Write cohesive methods making proper use of core language features (e.g., data types, operators, control structures) and classes in the Java API.
    7. Write human-readable code that complies with generally-accepted coding style guidelines, including generation of HTML-based documentation.

Expected Course Load

Programming courses are traditionally among the hardest and most time consuming courses. You will have to do a lot of work each weak to follow the course: do your readings, run and explore program examples, solve programming exercises and homeworks. To help the complete beginners to master the subject, we have provided several learning tools. These tools do help a lot to those who use them - but it also requires time. To be on the safe side, plan to spend around 8 hours outside of the classroom each week for this course. If you have some programming background, you may need less time. However, some students may need more than that. Note also that you need to invest your time regularly. Almost every lecture is build upon material presented in several earlier lectures. A failure to comprehend just one lecture may get you out of track for the rest of the course. If you have too many other commitments this semester to allocate enough time every week, consider taking this course later.

Assessment and Grading

Components of the Final Grade

Course assessment includes quizzes that will be offered through the course, homework programming assignments, and three exams - including final. The final exam is not cumulative. You final grade has three main components: class attendance, work over the duration of the course, and exams. Grade for the work over the duration of the course is a sum of your assignment grades, quiz grades (we will have several Java quizzes, but the lowest quiz grade will be excluded) and extra credit points. A value of a 5-questions quiz is 5 points. A value of a homework assignment is betwen 2 and 20 points (depending of the complexity of the problem). The value of each exam is 100 points. Exam grades will be scaled to adjust to the class performance.

Your progress will be measured as a percentage of the max possible points: (attendance_points + homework_points + quiz_points + extra_credit_points + exam_points)/(max_attendance_points + max_homework_points + max_quiz_point s+ max_exam_points) * 100%. Using this formula you can always check where you are standing. Score < 50% corresponds to F, 50-62.5 is D range, 62.5-75 is C range, 75-87.5 is B range, and 87.5-100 is A range. Lower and upper parts of each range corresponds to - and + modifiers.

Submitting

All assignments has to be submitted in electronic form through the CourseWeb as indicated in the assignment. The due date for all programming assignment is the end of the day (11:59pm) BEFORE the lecture. All submitted work should bear the number of the assignment/quiz and the author's name in printed form inside the header comment. You will lose 0.1 point for every solution that lacks the header comment with this data. By submitting work under your name, you are indicating that you have completed the assignment. This means that you should be able to completely explain every line of code in your program. Failure to be able to account for your coding decisions will be reflected in your grade.

The due date for assignments is strict. If your homework solution is submitted after the due date you will lose 20% of your score for each late day. I.e., homework submitted one day after the deadline will bring you only 80% of earned points; two days after the deadline it will bring you 60%, etc.Weekends, holidays, or break days are not counted as late days. No assignment can be submitted after it was analyzed during the lecture.

Extra Credit Points

You can earn extra credit points for several things such as asking a good question in a discussion forum, providing a helpful answer in a discussion forum, helping during the lecture, attending additional "catch-up" sessions, finding errors in slides and examples. Extra credit points will be added to your assessment/quiz results and can compensate missed your points. You can earn up to 10 extra credit points, however, together with these points, your can't earn more than max_homework_points + max_quiz_points for the work over the duration of the course.

Course Policies

Academic Integrity

You are expected to be fully aware of your responsibility to maintain a high quality of integrity in all of your work. All work must be your own, unless collaboration is specifically and explicitly permitted. You are welcome to discuss the solution of programming exercises that are not graded. You are even encouraged to do it within study groups and using CourseWeb discussion forums. For graded homework assignments the only acceptable collaboration is to discuss the algorithm (the idea) of the solution. No collaboration on the level of program code is permitted. Every student has to write own program solution from the beginning to the end. You should not view or copy the code written by other students, neither should you share your code with others.

Any unauthorized collaboration or copying will at minimum result reducing credit for the affected assignment (50% for the first case, 100% for further cases) and may be subject to further action under the University Guidelines for Academic Integrity. You are expected to have read and understood these Guidelines. A document discussing these guidelines was included in your orientation materials.

Attendance

Class attendance is a component of your grade (each lecture worth 1 point). We will record the attendance at every lecture. To reach 100% attendance you will need to attend any 12 lectures (max_attendance_points=12). You can skip lectures over this number without affecting your attendance score. While most of the material covered by the lectures could be found in course books, some material is not sufficiently covered by the book. Finally, all lectures include animated demonstration of examples.If you have missed the lecture, make sure you have a copy of the slides that can be obtained from one of the course tools.

Electronic Devices

The class includes programming labs. To work on the labs, the students are strongly encouraged to bring and use laptops with installed Java Development tools. These tools could also be used to run examples and demonstration shown in class and to make class notes. The use of laptops beyond the class immediate needs is not premitted in class. Unless otherwise approved for use in class, all other electronic devices must be turned off and kept out of sight during class.  No recording devices may be used without Instructor's permission.

Make-ups, Incompletes and Other Exceptions

If you miss a quiz or and assignment, you will receive a zero. There will be no make-up quizzes, but the instructor will drop one lowest quiz score. There are also no make-up assignments since most of the assignments will be analyzed in the class shortly after the due date. Missed exams can be made up in cases of extreme circumstances. The Instructor does not grant incompletes.  Any exception is at the Instructor’s sole discretion and must be due to extraordinary circumstances supported by verifiable documentation. 

Office Hours

Office hours are an opportunity for you to clarify details you may have missed in class or to resolve a serious problem you have encountered when working on an assignment. They are not a place to get a "second run" of the lecture if you missed the class or obtain answers on the assignment. If you come to office hours with a programming problem, make sure that you have access to an electronic version of your code (use dropbox or bring a floppy). If you are not able to attend office hours due to your work schedule, you can arrange an appointment with a GSA or the instructor.

Special Considerations

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Office of Disability Resources and Services, 216 William Pitt Union, (412) 648-7890 / (412) 383-7355 (TTY) as early as possible in the term. Disability Resources and Services reviews documentation related to a student's disability, provides verification of the disability, and recommends reasonable accommodations for specific courses. If you would like any additional information, please take a look at: http://www.drs.pitt.edu

Copyright © 2012 Peter Brusilovsky