Object-Oriented Programming for Information Science II
This course will focus on program design and implementation, emphasizing understanding and development of non-trivial applications, object-oriented design, and other approaches.
Class Notebooks
- Strings and Loops [ipynb] [html]
- Plotting and Hashing [ipynb] [html]
- Hashing [ipynb] [html]
- Games with Turtles [ipynb] [html]
- Multidimensional Lists [ipynb] [html]
- Image Processing [ipynb] [html]
- Web APIs [ipynb] [html]
- Graphs And Testing [ipynb] [html]
- Intro to Classes [ipynb] [html]
- Interfaces [ipynb] [html]
- Subclasses [ipynb] [html]
- Multiple Inheritance [ipynb] [html]
- Duck Typing Examples [ipynb] [html]
Homeworks
- Introductory Assignment [html]
- Loops, Graphics, File IO, and Recursion [html]
- Strings and Ciphers [ipynb] [html]
- IMDB Analysis with Pandas and Graphs [ipynb] [html]
- Class Design with IMDB [ipynb] [html]
- Image Processing [ipynb] [html]
Prerequisites
- Must have completed or be concurrently enrolled in INST201 – Introduction to Information Science.
- INST126 – Introduction to Programming for Information Science, CMSC106, CMSC122, or permission of instructor.
Student Learning Outcomes/Course Objectives
- Explain programming concepts, principles, design patterns and methods;
- Design, program and debug Python applications to solve non-trivial problems;
- Test and assess the quality of object-oriented code;
- Write clear and effective documentation;
- Differentiate between object-oriented, procedural, and functional programming/design paradigms and identify use cases for each; and
- Describe the ethical and social considerations in software development.
Textbook
- Think Python, Downey, Allen. 2nd Edition. Green Tea Press. Freely available here
- Python 3 Object-Oriented Programming, Phillips, Dusty. 2nd Edition. Packt Publishing. Available here, but cheaper on Amazon.
Required Technology
You will be expected to attend class with a laptop you can use for software development. We will do live programming exercises during most classes, so be prepared to write code. Any reasonably current operating system can be used. If you dont have access to a laptop, contact me as soon as possible.
Grading Policies
Letter Grade Distribution Your final grade for the course is computed as the sum of your scores on the individual elements below (100 possible points total), converted to a letter grade:
Syllabus Change Policy
This syllabus is a guide for the course and is subject to change with advance notice. Changes will be posted in ELMS. The ELMS course site is the definitive location for all course work, and communication, including class schedules, assignments and deadlines.
University Course Policies
The essential purpose of the university’s undergraduate course policies is to enable all of us to fully participate in an equitable, accessible and safe academic environment so that we each can be challenged to learn and contribute most effectively. They address issues such as academic integrity, codes of conduct, discrimination, accessibility, learning accommodations, etc. We are all responsible for following the policies at http://www.ugst.umd.edu/courserelatedpolicies.html. You must read them and send me any questions by the end of the first week of classes.
Course Calendar
Week | Dates | Topic | Chapters* | Assignments** |
Week 1 | 5/30, 6/1 | (Re)Introduction to Programming and Python | TPy 1-3 | HW1 |
Week 2 | 6/6, 6/8 | Programming in Python | TPy 4-9 | HW2 |
Week 3 | 6/13, 6/15 | Algorithmic Thinking + Procedural Programming | TPy 10-12 | HW3 |
Week 4 | 6/20, 6/22 | Object-Oriented Design | PyOOP 1-2 | – |
Week 5 | 6/27, 6/29 | Midterm, OO, and Project Interim | PyOOP 3 | HW4 |
Week 6 | 7/4, 7/6 | Object-Oriented Design | PyOOP 4-5 | HW5 |
Week 7 | 7/11, 7/13 | Large-Scale OO Development | PyOOP 6-7 | HW6 |
Week 8 | 7/18, 7/20 | Programming in the Real World | TBD | HW7 |
Week 9 | 7/25, 7/27 | Programming in Other Paradigms | TBD | – |
Week 10 | 8/1, 8/3 | Final Project Presentations | – | – |
</div>
* TPy: Think Python, PyOOP: Python 3 OO Programming
** All assignments are due on the first class of the following week. E.g., HW1 is due on 6 June, HW2 is due on 13 June, etc.