CS 21 - Data Structure and Algorithm

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

Data Structures and

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 2 – Algorithm Analysis


 Introduction to algorithms
 Big O notation and algorithm analysis
 Time and space complexity 1-4 20Hours

Week 3 – Basic Data Structures – Arrays & Linked Lists


 Introduction to arrays and their operations
 Introduction to linked lists: singly-linked lists

Week 4 – Linked Lists Continued


 Doubly-linked lists
 Circular linked lists
 Applications and problems
MIDTERM
Week 5 – Stacks & Queues – Part 1
 Introduction to stacks: operations and applications
 Introduction to queues: operations

Week 6 – Stacks and Queues – Part 2


 Applications of queues
 Problems and exercises on stacks and queues

Week 7 – Recursion
 Basics of recursion
 Recursive algorithms and problems
5-9 25Hrs
 Tail recursion

Week 8 – Trees – Part 1


 Introduction to trees and binary trees
 Binary search trees: operations and applications

Week 9 – Trees – Part 2


 AVL trees
 Red-black trees
SEMI-FINAL 10-14 25Hrs
Week 10 – Heaps and Priority Queues
 Introduction to heaps
 Operations and applications
 Priority queues

Week 11 – Hashing
 Hash tables and hash functions
 Collision resolution strategies
 Applications and problems

Week 12 – Graphs – Part 1


 Introduction to graphs
 Representation: adjacency matrix and adjacency list
 Depth-first search (DFS)

Week 13 – Graphs – Part 2


 Breadth-first search (BFS)
 Shortest path algorithms: Dijkstra’s algorithm

Week 14 – Sorting Algorithms


 Bubble sort, insertion sort, selection sort
 Merge sort and quick sort
FINAL
Week 15 – Searching Algorithms & Advanced Sorting
 Linear and binary search
 Heap sort and its application

Week 16 – Advanced Data Structures


 Introduction to B- trees and B+ trees
 Graph data structures: disjoint set
15-18 20Hrs
Week 17 – Algorithm Design Techniques
 Greedy algorithms
 Divide and conquer
 Dynamic programming introduction

Week 18 – Review & Conclusion


 Backtracking
 Course overview and wrap-up
 Discussion on real-world applications and future learning paths
Total 18 Weeks 90Hrs

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

1. 3 consecutive 15 minutes late equivalent to 1 absence


2. 3 consecutive absences without valid reasons, equivalent to drop
3. Cellphone must be in silent mode during classes hours
4. Students wearing improper School uniform are not allowed to enter in the classroom
5. No permit no exam policy must be followed
6. A special exam will be given to a student who failed to take it, provided that he has a valid reason and can present a receipt from the Finance Office.

 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.

Laboratory Assignment Rubric


Criteria Excellent (5) Good (4) Satisfactory (3) Needs Improvement (2) Unsatisfactory (1)
100% correct and efficient Minor mistakes; mostly 50-75% correct; major
Accuracy of Solution solution. correct. mistakes. Less than 50% correct. Incorrect solution.
Fully applies lab techniques Minor issues in technique Some techniques applied;
Application of Techniques effectively. application. others missed. Few techniques applied. No techniques applied.
All components of the One minor component
Completeness assignment are complete. missing. Some components missing. Many components missing. Incomplete work.
Documentation & Clear, detailed comments; Adequate comments; some
Annotation well-documented code. Mostly clear documentation. gaps. Sparse documentation. No documentation.
Highly efficient code; optimal Mostly efficient with minor Some inefficient solutions;
Code Efficiency solutions. inefficiencies. can be optimized. Inefficient code. Completely inefficient.

Hands-on Coding Rubric


Criteria Excellent (5) Good (4) Satisfactory (3) Needs Improvement (2) Unsatisfactory (1)
Syntax Accuracy No syntax errors; clean code. One minor syntax error. Multiple minor syntax errors. Major syntax errors. Non-functional code.
Solutions show deep
understanding & critical Good solutions with minor Acceptable solutions; lacks
Problem-solving Skills thinking. oversights. depth. Limited problem-solving. No solution provided.
Code is optimal and highly
Efficiency efficient. Minor inefficiencies present. Some inefficient solutions. Mostly inefficient code. Completely inefficient.
Code Structure & Logical, clear structure; Mostly organized; minor Some disorganization; flat
Organization modular code. issues. structure. Disorganized code. Incoherent structure.
Minor bugs; mostly Some bugs present; needs
Testing & Debugging Thorough testing; no bugs. debugged. debugging. Many bugs present. Non-functional due to bugs.

F. INSTITUTIONAL OUTCOMES OF CKCM GRADUATES

Graduate Attributes Performance Indicator

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

H. COURSE MAP – CURRICULUM MAP


PRE- CS CS CS CS CS CS CS CS CS CS
COURS COURSE UNIT
REQUISIT LEARNING OUTCOMES 00 00 00 00 00 00 00 00 00 01
E CODE TITLE S
E 1 2 3 4 5 6 7 8 9 0
Develop knowledge of basic data structures for storage and retrieval of
LO
ordered or unordered data. Data structures include: arrays, linked lists,
1 binary trees, heaps, and hash tables
Data Develop knowledge of applications of data structures including the ability
LO
Structures to implement algorithms for the creation, insertion, deletion, searching,
CS 21 CS 13 3 2 and sorting of each data structure. I P P I P
and
Algorithm LO
Analyze and compare algorithms for efficiency using Big-O notation
3
LO Implement projects requiring the implementation of the above data
4 structures
Legend: I – Introduce P – Practiced skills with supervision D – Demonstrated skills, without supervision

Prepared by: Recommending Approval: Approved by:

NEIL VINCENT B. CANAMA MARJON D. SENARLO LYDIE D. PADERANGA, Ph.D.


Instructor Program Head VP, Academic Affairs

You might also like