Object Oriented Programming (CS 113)

Semester: Fall 2012
Instructor: Dr. Sunil Shende

Lecture Schedule

MW 1:20-2:40pm in BSB 335

Office Hours/Contact Information

MW 10:30-noon or by confirmed appointment
Office: BSB 308
Email: shende AT camden DOT rutgers DOT edu


Description

This course follows up on CS 111/112 (Programming Fundamentals+software lab I). We will go through a very rapid and condensed review of topics from those courses in the first week. By the end of week 2 at the latest, everyone registered for the class is expected to be able to write elementary Python code with expressions (arithmetic and logical), statements (assignments, conditionals and simple loops) and functions. This means that anyone transferring from another school with an equivalent course in a language different from Python, will be expected to be reasonably conversant with basic Python programming in the first couple of weeks. Throughout the course, you should anticipate that you will be writing a lot of code: be prepared, for instance, to spend at least 4-5 hours (or more, depending on your level of preparation) per week doing programming assignments for the course!

All the class material (including but not limited to weekly content summaries, assignments and quizzes) will be organized on the Sakai site for the course; be sure to bookmark the site for easy reference. While I will make every effort to inform you about deadlines and so forth, you are ultimately responsible for checking the course site frequently for any content updates, discussions etc.


Recommended Textbook

Cover

Python 3: Object Oriented Programming by Dusty Phillips, Packt Publishing, 2010.

Please note that it is possible to purchase an electronic (eBook) version of the textbook instead of the hardcopy version from the publisher's website. For supplementary reading, I would also highly recommend consulting the following links:

Tentative Syllabus/Schedule of Topics

Unless specified otherwise, all chapters specified below (in the advance reading) are from the textbook by Phillips.

Week Topics Advance Reading Preparation
1 Python fundamentals Python Tutorial (first 5 sections)
2 Object-oriented design Chapter 1
3 Classes and Modules Chapter 2
4 Inheritance and Polymorphism Chapter 3
5 Exception handling Chapter 4
6 Using OOP Chapter 5
7 Unit-testing code Chapter 11
8 Built-in objects Chapter 6, 7 (functions)
9 Functional programming Rest of Chapter 7
10 Iterators and Generators Dive Into Python: Ch. 6, 7, 8
11 Design patterns Chapter 8
12 More design patterns Chapter 9
13 Data Structures: Binary heaps Class notes
14 Project Demonstrations

Grading Policy

Your grade will be based on your performance on the following:

  1. Seven programming assignments (best 6 out of 7): 30% of the grade
  2. Five online quizzes: 15%
  3. One in-class, midterm exam: 20%
  4. One in-class, final exam: 25%
  5. Group Project: 10%

It should be clearly understood that students cannot collaborate on assignments, quizzes or exams, whether by copying (or substantially "borrowing") from someone else or allowing their work to be copied by others. I will treat all such cases of plagiarism or cheating very seriously, and they will be reported to the Dean's office immediately without exception. Please make sure that you do not put yourself in that position - and do read and understand the Academic Integrity Policy and Student Code of Conduct at Rutgers.