Lecture 1 - Intro To OOP
Lecture 1 - Intro To OOP
Catedrilla, DIT
IT/Physics Department
February 23, 2022
CCC102
Computer Programming 2
(Week 0)
2
Civility in the Class
• Be on time!
• Be respectful!
This course augments the topics covered in CCC101. It introduces advanced topics in
computer programming and application building in a black-box manner. At the end of
each topic, students are required to create a small application using available libraries or
built-in functions supporting the needed functionality in a high-level programming
language of their choice. To complete the course, a term project is required and will be
composed of the small applications they have built after each topic.
4
Learning Outcomes
LO1. Design, implement, test, and debug program based on a given
specification that uses each:
(1) data structures, arrays, strings, structures, linked-list, and files,
(2) conditional, iterative, and recursive constructs, and
(3) standard libraries in the assigned programming language
6
Course Outline (Week 2)
Introduction to Object-Oriented Programming (OOP)
• Overview of OOP concepts and principles
• Comparison with other programming paradigms
• History and evolution of OOP
7
Course Outline (Week 3)
Objects and Classes
• Definition and creation of objects and classes
• Data types and member variables
• Methods and functions
• Constructors and destructors
• Static and instance members
8
Course Outline (Week 4 and 5)
Inheritance and Polymorphism
• Encapsulation and information hiding
• Inheritance and its benefits
• Polymorphism and its types (Overloading, Overriding)
• Abstraction, Interface, and Abstract Classes
• Multiple inheritance and diamond problem
• Accessor and mutator methods
• Super() function
• Abstract data types and data structure
9
Course Outline (Week 6 and 7)
Design Patterns
• Overview of design patterns
• Creational patterns (Factory, Singleton)
• Structural patterns (Adapter, Decorator)
• Behavioral patterns (Observer, strategy)
• Model-View-Controller (MVC) pattern
10
Course Outline (Week 8)
Exception handling and debugging
• Handling and throwing exceptions
• Try-catch blocks
• Debugging tools and techniques
• Logging, Code profiling and optimization
11
Course Outline (Week 9)
Advanced OOP topics
• Memory management and garbage collection
• Reflection and introspection
• Asynchronous programming and threading
• Static and class methods
• Mixins
12
Course Outline (Week 10)
Testing and Documentation in Python OOP
• Writing unit tests for Python classes
• Test-driven development
• Documentation using Docstrings and Sphinx
13
Course Outline (Week 11)
Data Analytics in Python
• Data manipulation
• Web scraping
• Loading and cleaning data from various sources (CSV, JSON, Excel, etc.)
• Filtering, sorting, and grouping data
• Joining and merging data
• Reshaping and transforming data
• Handling missing and inconsistent data
• Data Visualization
• Creating basic and advanced visualizations (line, bar, scatter, heatmap, etc.)
• Using visualization libraries like Matplotlib, Seaborn, and Plotly
• Creating interactive visualizations with Bokeh, Dash, and Streamlit
14
• Communicating insights and telling stories with data
Course Outline (Week 12)
Image Processing in Python
• Image loading and saving
• Image manipulation
• Image analysis
15
Course Outline (Week 13)
Machine learning
• Supervised learning algorithms (linear regression, logistic
regression, decision trees, random forests, etc.)
• Unsupervised learning algorithms (clustering, principal
component analysis, etc.)
• Neural networks and deep learning
• Model evaluation and selection
16
Grading System
The student should be able to get the minimum rate of 60% to pass the course.
17
Examination Schedule
18
Policies
• No makeup tests will be given unless you can present a medical certificate or an
immediate member of your family died. Make up tests will solely be on the teacher’s
discretion.
• Cheating in any requirement will result in a minimum penalty of having a grade of 5 for
that requirement. Duplicated projects/lab exercises will merit penalties for both the
student who copied and the student from whom the work was copied.
19
Thank you!