CS 21 - Data Structure and Algorithm
CS 21 - Data Structure and Algorithm
CS 21 - Data Structure and Algorithm
Algorithm
(CS 21)
SYLLABUS
CHRIST THE KING COLLEGE DE MARANDING, INC.
MARANDING, LALA, LANAO DEL NORTE
COMPUTER SCIENCE DEPARTMENT
COURSE SYLLABUS
1ST SEMESTER A.Y. 2023-24
A. CKCM VMGO
CKCM We are a Catholic Diocesan learning institution globally recognized for excellence in evangelization, education research, community service and an
VISION/MISSION agent of peace and environment protection and produces highly competitive God-centered graduates.
GOALS/OBJECTIVES Christ the King College de Maranding aims to:
a. Make Christian Living (CL)/ Religious Studies (RS) as a core of the curriculum
b. Teach, lead and form students to become agents of the new evangelization
c. Strengthen one’s faith through active participation in the Basic Ecclesial Community (BEC), interfaith dialogue, sacraments, devotions, retreats,
recollections, and other religious-related activities.
d. Educate students to readily respond to the needs of the times with creativity and commitment
e. Inculcate social responsibility/stewardship to care for the environment
f. Preserve Filipino culture and values as citizens of our country
g. Integrate Christian values and practice in all instructions and activities with emphasis on the core values of Love, Excellence, Peace, and Service
h. Adapt teaching pedagogies such as ICT-based instructions, Outcome-Based Education and other innovations
i. Provide high academic standards through comprehensive, integrative course of studies immersed in Christian Spirituality
B. DEPARTMENT GOALS
Computer Science is the study on the concepts and theories, algorithmic foundations, implementations and application and computing solutions.
Goals and Objectives:
1. Students will develop problem-solving and critical thinking skills and use these skills to solve complex computing problems.
2. Students will acquire a working knowledge of the theoretical foundations of computer science.
3. Students will acquire both a working knowledge and a theoretical understanding of the professional practice and formal methodologies of development of large
software projects.
4. Students will acquire communication and interpersonal skills necessary to perform effectively in a technical environment.
C. COURSE INFORMATION
Course Number - CS 21 – Data Structures and Algorithm
Descriptive Title
Course Credits 3 Units
Course Component 5Hours/ Week; 90Hours/ Semester (2Hrs Lecture – 3Hrs Lab)
Course Description Imagine a vast library with thousands of books but no system to organize them. How would you find the book you need? That's where data structures come
into play in the world of computing. They help us organize and access data efficiently. Now, pair this with algorithms, the step-by-step procedures or formulas
to solve problems, and you have the backbone of efficient software solutions.
Throughout this course, we will dive deep into foundational concepts, ranging from simple arrays to complex trees, and a plethora of algorithms designed for
various tasks. By leveraging Java's object-oriented capabilities, we'll gain hands-on experience, structuring data effectively, and optimizing algorithmic
operations. And remember, we're not just coding; we're solving real-world challenges.
Learning Outcomes At the end of this course, the students will be able to:
Knowledge
1. Understand and explain the fundamental principles and practical applications of various data structures, including stacks, queues, trees, and graphs.
2. Differentiate between various algorithmic design techniques, such as greedy algorithms, divide and conquer, dynamic programming, and backtracking.
3. Recognize and evaluate the time and space complexities of different algorithms to predict their performance in various scenarios.
Skills
1. Implement, manipulate, and optimize common data structures using Java, demonstrating a solid grasp of object-oriented programming concepts.
2. Implement, manipulate, and optimize common data structures using Java, demonstrating a solid grasp of object-oriented programming concepts.
3. Analyze real-world computational problems and determine suitable data structures and algorithms to address them effectively.
Values
1. Analyze real-world computational problems and determine suitable data structures and algorithms to address them effectively.
2. Embrace the philosophy of continuous learning, acknowledging the ever-evolving nature of technology and the importance of staying updated with latest
practices.
3. Recognize the broader impacts of computational solutions, valuing their role in societal, environmental, and economic contexts, and striving to make a
positive difference through technology.
Prerequisite CS 13 – Programming 2 Co-requisite
Reference/s Required Reading (Textbook)
Data Structure and Algorithm in Java
By:
Adam Drozdek
Other Supplemental Online Resources:
Materials Algorithms Specialization [4 courses] (Stanford) | Coursera
Course Requirements The students should attend classes and take well-organized notes.
There will be a short quiz or actual application at the end of every discussion/ topic, which will serves as evaluation.
Research documentation and a feasible running system for the students selected research title
Grading System Class Standing 70%: 30% Quizzes, Assignment 10%, Participation 10%, Project 10%, Attendance/Behavior 10%
Major Exam 30%
Total 100%
Teacher Name: SYRIL GLEIN T. FLORES, MCS
Class Schedule: SAT 1:00-3:00(Lec), 3:00-6:00P PM(Lab)
Room: Com Lab 1
Consultation Hours: Daily Online Consultation 5:00-9:00 PM
Room: Google Classroom
D. COURSE OUTLINE
TIME FRAME
OUTLINE
Weeks No. of Hours
PRELIM
Week 1 – Introduction & Overview
Course Introduction
Importance of data structures and algorithms
Overview of Java basics (refreshing pre-requisites)
Week 7 – Recursion
Basics of recursion
Recursive algorithms and problems
5-9 25Hrs
Tail recursion
Week 11 – Hashing
Hash tables and hash functions
Collision resolution strategies
Applications and problems
E. LEARNING PLAN
PRELIM
Course Intended Learning Outcome Learning Content Teaching and Learning Activities Assessment Tasks/ Tools References/Resources
At the of the topic, the student will be able Role and Lectures Quiz Required Reading
to: importance of Java coding refresher Class participation (Textbook)
data structure Group discussions Real-world problem Data Structure and
Recognize data structures and and Hands-on coding assignment Algorithm in Java
algorithms' role. algorithms Group activities In-class exercises By:
Refresh foundational Java concepts. Java basics Code sessions Group project Adam Drozdek
Differentiate among data structures. Course Lab assignment
Understand algorithmic efficiency. overview
Familiarize with course logistics. Algorithm
Grasp algorithm analysis analysis
importance. Big O notation
Understand Big O notation. Time and
Differentiate among complexity space
classes. complexity
Analyze algorithm complexities. Algorithm
Predict algorithm efficiencies. efficiency
Understand arrays and linked lists. Arrays vs
Differentiate static vs. dynamic linked-lists
structures. Operations on
Implement algorithms with arrays both
and singly-linked lists. Efficiency
Analyze the efficiency of arrays vs. comparison
linked lists. Doubly and
Solve problems using these circular linked
structures. lists
Dive deeper into linked lists. Operations
Implement algorithms using Comparison
advanced linked lists. with singly-
Analyze different types of linked linked lists
lists.
Design solutions using linked lists.
Evaluate linked list operation
efficiencies.
MIDTERM
Course Intended Learning Outcome Learning Content Teaching and Learning Activities Assessment Tasks/ Tools References/Resources
At the of the topic, the student will be able Stack and Lectures Quiz Required Reading
to: queue Java coding refresher Class participation (Textbook)
introduction Group discussions Real-world problem Data Structure and
Understand stack principles. Basic Hands-on coding assignment Algorithm in Java
Comprehend queue basics. operation Group activities In-class exercises By:
Implement stack and queue operations. Basics of Code sessions Group project Adam Drozdek
Analyze stack and queue efficiencies. recursion Lab assignment
Solve problems using stacks and
Recursive
queues.
algorithm
Dive deeper into queue applications.
Implement advanced algorithms with
Tail recursion
stacks and queues. Introduction
Analyze specific use cases for both to trees
structures. Binary trees
Design solutions using stacks and Binary search
queues. trees
Evaluate the complexities of common
operations.
Grasp recursion principles.
Understand recursive algorithms.
Implement recursive solutions in Java.
Analyze recursion's efficiency.
Tackle problems using recursive
methods.
Understand tree structures.
Implement binary and binary search
trees.
Analyze tree operations and efficiencies.
Design solutions using trees.
Evaluate binary search tree
complexities.
Dive deeper into AVL and red-black
trees.
Implement and analyze advanced tree
structures.
Design balanced tree-based solutions.
Evaluate tree-balancing algorithms.
Understand self-balancing tree
principles.
SEMI-FINAL
Course Intended Learning Outcome Learning Content Teaching and Learning Activities Assessment Tasks/ Tools References/Resources
At the of the topic, the student will be able Introduction to Lectures Quiz Required Reading
to: heaps Java coding refresher Class participation (Textbook)
Operations, Group discussions Real-world problem Data Structure and
Understand heap structures. and priority Hands-on coding assignment Algorithm in Java
Implement heaps and priority queues. queues Group activities In-class exercises By:
Analyze heap operations. Hash tables Code sessions Group project Adam Drozdek
Design solutions using heaps. Hash functions Lab assignment
Evaluate the efficiency of heap
Collision
operations.
resolution
Grasp hashing principles.
Implement and analyze hash tables. Graph
Design solutions using hashing. introduction
Understand collision resolution. Representation
Evaluate hashing efficiencies. DFS
Understand basic graph concepts. BFS
Implement graph representations. Dijkstra’s
Design solutions using graphs. algorithm
Analyze graph traversal with DFS.
Evaluate graph representation
efficiencies.
Understand basic graph concepts.
Implement graph representations.
Design solutions using graphs.
Analyze graph traversal with DFS.
Evaluate graph representation
efficiencies.
Understand various sorting algorithms.
Implement and analyze sorting
techniques.
Design efficient sorting solutions.
Evaluate sorting algorithm efficiencies.
Compare and contrast sorting methods.
FINAL
Course Intended Learning Outcome Learning Content Teaching and Learning Activities Assessment Tasks/ Tools References/Resources
At the of the topic, the student will be able Linear and Lectures Quiz Required Reading
to: binary search Java coding refresher Class participation (Textbook)
Advanced Group discussions Real-world problem Data Structure and
Grasp searching algorithms. sorting Hands-on coding assignment Algorithm in Java
Implement search and advanced techniques Group activities In-class exercises By:
sorting. B- trees Code sessions Group project Adam Drozdek
Design efficient searching solutions. B+ trees Lab assignment
Analyze search algorithm complexities.
Advanced
Evaluate advanced sorting efficiencies.
graph
Grasp advanced algorithm techniques.
Implement greedy, divide and conquer,
structures
and dynamic programming. Greedy
Design solutions using advanced algorithms,
techniques. divide and
Analyze various design strategies. conquer
Evaluate the efficiency of design Introduction
techniques. to dynamic
Review key course concepts. programming
Understand real-world applications. Course recap
Reflect on learning outcomes. Real world
Prepare for final examinations or application
projects.
Plan for future learning in the field. Future trends
POLICIES
RUBRICS
Group Project Rubric
Criteria Excellent (5) Good (4) Satisfactory (3) Needs Improvement (2) Unsatisfactory (1)
Research & Content Depth Demonstrates Solid research with minor Adequate research; some Limited research evident. No research has shown.
comprehensive research and gaps in understanding. content gaps.
deep understanding
Collaboration & Teamwork Excellent collaboration; every Fair collaboration; noticeable Limited teamwork has No teamwork was shown.
member significantly Good teamwork with minor imbalances. shown.
contributes. collaboration issues.
Clear, coherent presentation; Mostly clear presentation; Adequate clarity; some
Presentation & Organization logically structured. minor organizational issues. disorganization. Disorganized presentation. Incoherent presentation
Fully applies and integrates
course concepts in the Good application with minor Some concepts applied; miss
Application of Concepts project. gaps. key ideas. Few concepts applied. No concepts applied.
Highly creative and original Some creativity and Standard approach; little
Creativity & Originality approach. originality shown. originality. Lacks creativity. Entirely generic.
a. God-centered individual imbued with a social training, good spirit and will power to Model of Christian faith and values in the community
live the Faith and be a Christian witness in the community;
b. Able to attain excellence in evangelization by proclaiming and living out the word of Evangelize the word of God through words and actions
God;
c. A worthy and responsible citizen of the Philippines who is aware and proud of his/her Practice nationalism by using Filipino products
collective national identity and able to contribute meaningfully to the development of Takes pride in his national and ethnic identity by speaking his dialect and practice
Filipino society both at the local and national levels as an agent of peace; Filipino customs and traditions.
d. Global Citizen who recognizes and respects the dignity of all humanity, respects and Concerned with problems outside the home, community and country
appreciates diversity, and cares about the problems that affect the world and the Conduct research for the common good.
common good through research;
e. Good Person, imbued with a balanced personality, with its mark being a proper Possess pleasing personality with desirable values.
balance between the interior and exterior self (things outside self), and an awareness Presents himself/herself in a dignified manners both in and out of campus.
of the dignity of self and others in a highly competitive world; Respects the dignity of others.
f. Competent and Committed Graduate, one equipped with the necessary knowledge, Holistic individual who applies his knowledge, skills and values in improving his quality
skills and values demanded of his profession and committed to the application of of life and those of other stakeholders.
these for service to the community by uplifting their quality of life, by evangelization Help in the evangelization by participating in literacy programs and extension
and by providing literacy programs; activities.
g. Responsible Citizen, one with an awareness of his relations with, and responsibilities Relates well with local and global society by performing his responsibilities such as
to the local and global society and commitment to its improvement through the paying taxes and voting wisely.
exercise of professional competence and dedication; Use his/her professional competence and dedication in performing his responsibilities
as a CKCM graduate.
h. Environmental Protector, one who is aware of his/her relation to the environment, Concerned with protecting the environment and care of Mother Earth by practicing
conscious in the care of Mother Earth by creating awareness, preservation of natural solid waste management and care of natural resources.
resources and a committed steward of God’s creations;
i. Instrument of God’s love, one who is compassionate to others unconditionally; Allows himself/herself to be an instrument of God’s love by showing compassion to all
and showing unconditional love.
G. PROGRAM OUTCOMES
PROGRAM
GRADUATE ATTRIBUTES PROGRAM OUTCOMES PERFORMANCE INDICATOR
OUTCOMES CODE
Knowledge for solving computing problems CS 001 Apply knowledge of computing fundamentals, knowledge of a Completed and successfully defended
computing specialization and mathematics, science and domain capstone project/thesis in line with the
knowledge appropriate for the computing specialization to the curriculum
abstraction and conceptualization of computing models from
defined problems and requirements which creates an engaging,
motivating, intellectually stimulating learning experience.
Identify, analyze formulate, research literature and solve experience Documented Software / hardware
complex computing problems and requirements reaching requirements specification following
Problem / Development of solutions CS 002 substantiated conclusions using fundamental principles of computing Industry Standards
mathematics, computing science and relevant domain discipline that
centered in living out Christs’ values
An ability to apply mathematical foundation, algorithmic principles
and computer science theory in the modeling and design of
computer- based system in a way that demonstrates comprehension
CS 003 of the tradeoff involved in design choices. Knowledge and
understanding of information security issues in relation to design
and promotes the process of acquiring right values, skills and
behavior Designed and developed a computing
Design / Development of solutions Knowledge and understanding of information security issues in solution using object-oriented approach
CS 004 relation to the design, development and use of information
systems
Design and evaluate solutions for complex computing
problems, and design and evaluate systems, components, or
CS 005 processes that meet specified needs with appropriate
considerations for public health and safety, cultural and
societal, and environmental considerations
Create, select, adapt and apply appropriate techniques resources Used of Integrated Development
and modern computing tools to complex computing activities with Environment
Modern tool usage CS 006
an understanding of the limitation and have the courage to inculcate
social responsibility in order to accomplish common goal
Function effectively as an individual and as a member or leader in Worked in a group to develop a machine
Individual & teamwork CS 007 diverse teams in multidisciplinary settings which commits to bring project
forth authentic love and understanding
Communicate effectively with the computing community and with Presented a proposed solution in class or in a
society at large about complex computing activities be being able to public forum
Communication CS 008 comprehend and write effective reports, design documentation,
make effective presentations and give and understand clear
instruction which create motivating learning experience
An ability to recognize the legal, social ethical and professional issues Immersed / exposed in an actual working
Computing professionalism and ethics CS 009
involved in the utilization of computer technology and be guided by environment in industry
the adoption of appropriate professional, ethical and legal practices
take the risks and act role model to others
Recognize the need, and have the ability to engage in independent
learning for continual development as a computing professional that Created a report on a conducted
Life-long learning CS 010
immersed good values and bring forth truthfulness in strengthening independent learning activity
Christian Education