You are on page 1of 20

Jypzie M.

Catedrilla, DIT
IT/Physics Department
February 23, 2022

CCC102
Computer Programming 2
(Week 0)
2
Civility in the Class
• Be on time!

• Be respectful!

• Don’t ask stupid question!

• Turn off /do not use your cellphones during lecture


class and laboratory activities.

• Turn off your computer monitor during lectures.


3
CCC102 Computer Programming 2
Course Description

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

LO2. Assess program code


(1) regarding appropriateness of chosen data structure,
(2) regarding appropriateness of chosen conditional and iterative
constructs given a programming task, and
(3) regarding thoroughness in applying procedural abstraction and
standard libraries.
5
Course Outline (Week 1)
Review of basic Computer Programming Concepts
• Variables and data types
• Conditional statements
• Loops
• Functions
• Lists
• Dictionaries
• Regular Expression

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

Midterm Exam – April 10, 2023

Final Exam – June 19, 2023

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.

• Late submission will NOT BE ACCEPTED.

• No INC grade will be given at the end of this term.

• 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!

You might also like