OBJECT ORIENTED PROGRAMMING 31695
COURSE HOME PAGE
ORT BRAUDE COLLEGE OF ENGINEERING
Electronic and Electrical Engineering Department
Site owner: Samy Zafrany
COURSE PROGRAM
COURSE LECTURE NOTES
The course slides are prepared during this semester and are subject to many updates and modifications, so it is not advised to print them at this early stage.- Course Slides Part 01
- Course Slides Part 02
- Course Slides Part 03
- Course Slides Part 04
- Course Slides Part 05
SOFTWARE
-
C/C++ Programming Languages: Daniel Geva Web Sites
This is the official 31616 course web site of the C/C++ programming languages (owned by Daniel Geva). Most of the Python Data Structures and algorithms are implemented in the C programiing language, and therefore we will occasinally see C programs that explain how a specific data structure was implemented, or how a specific algorithm was made to run fast by writing it in C. So if you haven't practicing C code lately, please visit this course and refresh your C skills soon! -
Python Programming Environment
We will be using the Python Programming Language for many course assignments and projects
since it is ideal for expressing algorithmic ideas just like a pseudo language and at the same time it also runs the algorithms (unlike a pseudo language which is descriptive but cannot run). The link above contains tutorials, books, and software downloads that we need for our course. Please visit this page soon to get acquainted with the Python programming language: we expect the students to be able to learn most of what we need from this language by themselves, as we will not have time to cover all the aspects of the language.
Click here for software installation - We will also use Java and C# as examples of pure object oriented programming languages. Please be prepare to install the JDK (Java Development Kit) and Java Runtime Environments. For C# we will be using the collge Visual Studio Installations.
Tutorials and Links
- Object-Oriented Design with Python (University of Colorado)
- Introduction to Object Oriented Programming Concepts (OOP) and More
- Object Oriented Programming
- Generator Tricks For Systems Programmers
- Python 3 Tutorial: 19 - Classes
- The best way to learn python part 5: Object-oriented programming
- Practical UML (Unified Modelling Language) - A Hands-On Introduction for Developers
- UML Class Diagrams
COURSE PROJECTS
- Before starting each project make sure to review our Python Coding Style Guide! to stick to these rules in every line of code that you turn in!
- Make sure to follow exact names to functions, classes, and methods!
- For this course it is mandatory to understand and follow the following Style Guide:
- The PEP8 style guide as used in the James Madison University Python Coding Conventions (by Nathan Sprague)
Project 1: Python Programming
Project 1: Solutions
Project 2: Python Programming
Project 3: Classes and Objects
Test driven design: The Student class example we did in class
Project 4: Blackjack - OOA, OOD, and OOP in one game
This is just the first draft, and there maybe some more slides (UML) and some small changes. But please get started by reading and thinking (and coding your ideas). This is a must project for really understanding the OOA, OOD, and OOP processes! So get started!! We will discuss this project in our next lab.
Files
- UML - Unified modelling language exemplified on blackjack
-
Main file: blackjack.py (you assignment is to complete or redeisgn the missing code)
Last update: May 20, 2014 [now almost complete!] - The strategy2 table file
- The strategy reader module
Final Course Project 1: Sudoku
Solver Hint: pseudo code for the backtracking algorithm
Final Course Project 2: Poker
Work in progress ...
Review Problems
Review Problems toward the final exam
EXAMS
Kernighan's Law: Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.