HOLY ANGEL UNIVERSITY College of Engineering & Architecture
Department of Computer Engineering
University Vision, Mission, Goals and Objectives:
Mission Statement (VMG)
We, the academic community of Holy Angel University, declare ourselves to be a Catholic University. We dedicate ourselves to our core purpose, which is to provide accessible quality education that transforms students into persons of conscience, competence, and compassion. We commit ourselves to our vision of the University as a role-model catalyst for countryside development and one of the most influential, best managed Catholic universities in the Asia-Pacific region. We will be guided by our core values of Christ-centeredness, integrity, excellence, community, and societal responsibility. All these we shall do for the greater glory of God. LAUS DEO SEMPER!
College Vision, Goals and Objectives:
Vision
A center of excellence in engineering and architecture education imbued with Catholic mission and identity serving as a role-model catalyst for countryside development
Mission
To provide accessible quality engineering and architecture education leading to the development of conscientious, competent and
compassionate professionals who continually contribute to the advancement of technology, preserve the environment, and improve life for countryside development.
Goals
The College of Engineering and Architecture is known for its curricular programs and services, research undertakings, and community involvement that are geared to produce competitive graduates:
- who are equipped with high impact educational practices for global employability and technopreneurial opportunities;
- whose performance in national licensure examinations and certifications is consistently above national passing rates and that falls within the 75th to 90th percentile ranks; and,
- who qualify for international licensure examinations, certifications, and professional recognitions;
Objectives
In its pursuit for academic excellence and to become an authentic instrument for countryside development, the College of Engineering and Architecture aims to achieve the following objectives:
1. To provide students with fundamental knowledge and skills in the technical and social disciplines so that they may develop a sound perspective for competent engineering and architecture practice;
2. To inculcate in the students the values and discipline necessary in developing them into socially responsible and globally competitive professionals;
3. To instill in the students a sense of social commitment through involvement in meaningful community projects and services;
4. To promote the development of a sustainable environment and the improvement of the quality of life by designing technology solutions beneficial to a dynamic world;
5. To adopt a faculty development program that is responsive to the continuing development and engagement of faculty in research, technopreneurship, community service and professional development activities both in the local and international context;
6. To implement a facility development program that promotes a continuing acquisition of state of the art facilities that are at par with leading engineering and architecture schools in the Asia Pacific region; and,
7. To sustain a strong partnership and linkage with institutions, industries, and professional organizations in both national and international levels.
Relationship of the Program Educational Objectives to the Vision-Mission of the University and the College of Engineering & Architecture:
Computer Engineering Program Educational Outcomes (PEOs):
Within a few years after graduation, our graduates of the Computer Engineering program are expected to have:
Vision-Mission
Christ-
Centeredness Integrity Excellence Community Societal
Responsibility
1. Practiced their profession
2. Shown a commitment to life-long learning
3. Manifested faithful stewardship
Relationship of the Computer Engineering Program Outcomes to the Program Educational Objectives:
Computer Engineering Student Outcomes (SOs):
At the time of graduation, BS Computer Engineering program graduates should be able to:
PEOs
1 2 3
a) Apply knowledge of mathematics, physical sciences, and engineering sciences to the practice of Computer
Engineering.
b) Design and conduct experiments, as well as to analyze and interpret data
c) Design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability, in accordance with standards
d) Function on multidisciplinary teams
e) Identify, formulate and solve engineering problems
f) Have an understanding of professional and ethical responsibility
g) Demonstrate and master the ability to listen, comprehend, speak, write and convey ideas clearly and effectively, in
person and through electronic media to all audiences.
h) Have broad education necessary to understand the impact of engineering solutions in a global, economic,
environmental, and societal context
i) Recognition of the need for, and an ability to engage in life-long learning and to keep current of the development
in the field
j) Have knowledge of contemporary issues
k) Use the techniques, skills, and modern engineering tools necessary for engineering practice. l) Have knowledge and understanding of engineering and management principles as a member and leader in a
team, to manage projects and in multidisciplinary environments.
COURSE SYLLABUS
Course Title: DATA STRUCTURE AND ALGORITHM ANALYSIS LECTURE Course Code: DATASTRUCT
Course Credit: 3 Units Year Level: 3rd Year
Pre-requisites:
Co-requisite:
COMFUN
DATASTRUCTL
Course Calendar:
2nd Semester Course Description:
The course includes linear data structures such as arrays, stacks, queues, linked-lists; nonlinear data structures such as generalized lists, trees, and graphs; operations on these using algorithms such as insertions, deletions, and traversals.
Course Outcomes (COs):
After completing this course, the students should be able to:
Relationship to the Program Outcomes:
a b c d e f g h i j k l
1) Recognize the different linear and nonlinear data structures
E 2) Graphically represent any data structure
D 3) Have a clear understanding of the algorithms for creating, accessing,
and destroying structural information E E
4) Determine the complexity of common algorithms
E E
5) Apply programming techniques like searching and sorting in solving
problems D D D
COURSE ORGANIZATION Time
Frame
Hours Course
Outcomes Course Outline
Teaching & Learning
Activities Assessment Tools
Resources Week
1
3 CO1
CO2
OVERVIEW OF DATA STRUCTURES AND ALGORITHMS
Some Uses for Data Structures and Algorithms
Overview of Data Structures
Overview of Algorithms
Some Initial Definitions
A Quick Introduction to Object-Oriented Programming
New C++ Features
Software Engineering Library Activity:
Arrays
Lecture
Multimedia instruction
Small group discussion on real-life applications of Data Structures and Algorithms
Class discussion
Questioning
Small group activities on OOP and UML design
Library work: Arrays
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[1], A[4], B[1], B[2], B[3], B[4], B[5]
Week 2
3 CO2
CO4
Arrays
The Array Workshop Applet
An Array Example
Dividing a Program Into Classes
Class Interfaces
Small group activities on Arrays
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[2], B[3], B[4], B[5]
Week 3
3 CO2
CO3 CO4
Ordered Arrays
The Ordered Array Workshop Applet
Logarithms
Storing Objects
Big O Notation
Small group activities on Ordered Arrays
Class discussion
Questionings
Library work: Sorting
Seatwork Classroom assignment Recitation
Direct observation
A[2], A[3], A[4], B[1], B[2], B[3], B[4], B[5]
Why Not Use Arrays for Everything?
Library Activity:
Sorting
Board Work Group work Quiz
Week 4
3 CO3
CO4 CO5
The Bubble Sort
Sorting
Inventing Your Own Sorting Algorithm
Bubble-Sorting the Baseball Players
The bubbleSort Workshop Applet
Implementing C++ Code for a Bubble Sort
Invariants
Efficiency of the Bubble Sort Library Activity
The bubbleSort Workshop Applet
Lecture
Multimedia instruction
Small group activities on Bubble Sort
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[3], B[5]
Week 5
3 CO3
CO4 CO5
The Insertion Sort
Insertion Sort on the Baseball Players
The insertSort Workshop Applet
Implementing the Insertion Sort in C++
Efficiency of the Insertion Sort
Sorting Objects
Another Feature of Sorting Algorithms: Stability
Comparing the Simple Sorts Library Activity
Stacks
Small group activities on Insertion Sort
Class discussion
Questioning
Library work: Stacks
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work Quiz
A[2], A[3], A[4], B[1], B[3], B[5]
Week 6
3 CO1
CO2 CO3 CO4
Stacks
A Different Way to Think About Data Structure
Understanding Stacks
Implementing a Stack in C++
Lecture
Multimedia instruction
Small group activities on Queues
Seatwork Classroom assignment Recitation
A[2], A[3], A[4], B[1], B[3], B[5]
CO5 Reversing a Word
Delimiter Matching
Efficiency of Stacks
Queues and Priority Queues
Queues
Priority Queues
Class discussion
Questioning
Small group discussion on real-life applications of Stacks
Direct observation Board Work Group work
Written examination
PRELIM EXAMINATION Week
7
3 CO1
CO2 CO3 CO4 CO5
Linked Lists
Understanding Links
The LinkList Workshop Applet
Implementing a Simple Linked List
Finding and Removing Specified Links
The Efficiency of Linked Lists
Lecture
Multimedia instruction
Small group activities on Linked Lists
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[3], B[5]
Week 8
3 CO1
CO2 CO3 CO4 CO5
Abstract Data Types
A Stack Implemented By a Linked List
Double-Ended Lists
Implementing a Queue Using a Linked List
Data Types and Abstraction
Using ADTs as a Design Tool
Abstract is a Relative Term
Small group activities on Abstract Data Types
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1]
Week 9
3 CO1
CO2 CO3 CO4 CO5
Specialized Lists
Sorted Lists
List Insertion Sort
Doubly Linked Lists Recursion
Demonstrating Recursion with Triangular Numbers
Small group activities on Specialized Lists
Small group activities in Recursion
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[3], B[5]
Characteristics of Recursive Functions
Demonstrating Recursion with Anagrams
Demonstrating Recursion in a Binary Search
Recursion Versus Stacks
Quiz
Week 10
3 CO1
CO2 CO3 CO4 CO5
Applied Recursion
The Towers of Hanoi
Mergesort Quicksort
Partitioning
Basic Quicksort
Lecture
Multimedia instruction
Small group activities
In Applied Recursion and Quicksort
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[3], B[5]
Week 11
3 CO3
CO4 CO5
Improving Quicksort
Problems with Inversely Sorted Data
Handling Small Partitions
Efficiency of Quicksort Library Activity:
Binary Trees
Small group activities in Improving Quicksort
Class discussion
Questioning
Library work: Binary Trees
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work Quiz
A[2], A[4], B[1], B[3], B[5]
Week 12
3 CO1
CO2 CO3 CO4 CO5
Binary Trees
Why Use Binary Trees?
What is a Tree?
Basic Binary Tree Operations
Finding a Node
Inserting a Node
Deleting a Node
Lecture
Multimedia instruction
Small group discussion on Binary Trees
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
Written examination
A[2], A[3], A[4], B[1], B[5]
MIDTERM EXAMINATION
Week 13
3 CO1
CO2 CO3 CO4 CO5
Traversing Binary Trees
Traversing the Tree
Finding Maximum and Minimum Values
The Efficiency of Binary Trees
Duplicate Keys
Implementing a Binary Search Tree in C++
Small group discussion on Traversing Binary Trees
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], A[4], B[1], B[5]
Week 14
3 CO1
CO2 CO3 CO4 CO5
Red-Black Trees
Our Approach to the Discussion
Balanced and Unbalanced Trees
Using the RBTree Workshop Applet
Simple Insertions
Rotations Library Activity
The RBTree Workshop Applet
Small group activities on Red-Black Trees
Class discussion
Questioning
Library work:
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work
A[2], A[3], B[1], B[5]
Week 15
3 CO1
CO2 CO3 CO4 CO5
Red-Black Tree Insertions
Inserting a New Node
Deletion
Efficiency of Red-Black Trees
Implementing the Insertion Process
Other Balanced Trees 2-3-4 Trees
Introduction to 2-3-4 Trees
The Tree234 Workshop Applet
Small group activities on Red-Black Trees Insertions
Class discussion
Questioning
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work Quiz
A[2], A[3], B[1], B[5]
Week 16
3 CO1
CO2
Implementing 2-3-4 Trees
Implementing a 2-3-4 Tree in C++ Small group activities on Implementing 2-3-4
Seatwork Classroom
A[2], A[3], B[1], B[5]
CO3 CO4 CO5
2-3-4 Trees and Red-Black Trees
Efficiency of 2-3-4 Trees Hash Tables
Introduction to Hash Tables
Linear Probing
C++ Code for a Linear Probe Hash Table
Trees
Small group discussion on Hash Tables and Linear Probing
Class discussion
Questioning
assignment Recitation
Direct observation Board Work Group work
Week 17
3 CO1
CO2 CO3 CO4 CO5
Quadratic Probing
Quadratic Probing
Double Hashing
Efficiency of Open Addressing Separate Chaining
The HashChain Workshop Applet
C++ Code for Separate Chaining
Efficiency of Separate Chaining
Open Addressing Versus Separate Chaining
Hash Functions Library Activity
Graph Algorithms
Lecture
Multimedia instruction
Class discussion
Questioning
Library work: Graph Algorithms
Seatwork Classroom assignment Recitation
Direct observation Board Work Group work Quiz
A[2], A[3], A[4], B[1], B[3], B[5]
Week 18
3 CO1
CO2 CO3 CO4 CO5
GRAPH ALGORITHMS
Graphs
Data Structures for Graphs
Graph Traversals
Directed Graphs
Shortest Path
Minimum Spanning Trees
Weighted Graphs
Lecture
Multimedia instruction
Small group discussion on Graph Algorithms real life applications
Small group activities on Graph Algorithms
Jeopardy game
Recitation
Direct observation Board work
Group work Final Project Project presentation
Written examination
A[2], A[3], A[4], B[1], B[5]
FINAL EXAMINATION
Course References:
A. Basic Readings
1) Antonakos, J.L. (2011). Data structure and software engineering: challenges and improvements. Apple Academic Press, Inc.
2) Goodrich, M.T. (2011). Data Structures & Algorithms in C++. John, Wiley, Danvers, MA 3) Main, M. (2011). Data structures & other objects using C++. Pearson
4) Malik, D.S. (2015). C++ programming: program design including data structures. Cengage Learning B. Online References
1) Dale, N. (2011). C++ Plus Data Structures Fifth Edition. Jones & Barlett Learning, LLC. Retrieved from
https://books.google.com.ph/books?id=bdzzlLOJb1YC&printsec=frontcover&dq=C%2B%2B&hl=en&sa=X&ved=0ahUKEwi0nsWx- qLOAhVGpZQKHe7PDwo4KBDoAQhQMAk#v=onepage&q=C%2B%2B&f=false
2) Davis, S.R. (2014). Beginning Programming with C++ For Dummies 2nd Edition. John Wiley & Sons, Inc. Retrieved from
https://books.google.com.ph/books?id=WXrDBAAAQBAJ&printsec=frontcover&dq=Beginning+Programming+with+C%2B%2B+For+
Dummies&hl=en&sa=X&ved=0ahUKEwi9suDl-qLOAhWCW5QKHWEVA18Q6AEIGjAA#v=onepage&q=
Beginning%20Programming%20with%20C%2B%2B%20For%20Dummies&f=false
3) Lambert, K. (2013). Fundamentals of Python: Data Structures. Cengage Learning. Retrieved from
http://site.ebrary.com/lib/haulib/detail.action?docID=10791253&p00=data+algorithms+structures
4) Ravichandran, D. (2011). Programming with C++ Third Edition. Tata McGraw Hill Education Private Limited. Retrieved from
https://books.google.com.ph/books?id=Zw0jqouq61gC&printsec=frontcover&dq=C%2B%2B&hl=en&sa=X&ved=0ahUKEwiNusDU- aLOAhXIppQKHffYALY4HhDoAQgkMAI#v=onepage&q=C%2B%2B&f=false
5) Stephens, R. (2013). Essential Algorithms: A Practical Approach to Computer Algorithms. Wiley. Retrieved from http://site.ebrary.com/lib/haulib/detail.action?docID=10740157&p00=data+algorithms+structures
Course Requirements 1) 3 Major Exams (Prelims, Midterms, and Finals) 2) 6 Quizzes
3) Assignments &Seatworks
Grading System CAMPUS++ COLLEGE ONLINE GRADING SYSTEM
Legend: (All Items in Percent)
CSA Class Standing Average for All Performance Items (Cumulative) P Prelim Examination Score
M Midterm Examination Score F Final Examination Score MEA Major Exam Average PCA Prelim Computed Average MCA Midterm Computed Average FCA Final Computed Average
Computation of Prelim Computed Average (PCA) CSA =
MEA = P
PCA = (60%)(CSA) + (40%)(MEA)
Computation of Midterm Computed Average (MCA) CSA =
MEA =
MCA = (60%)(CSA) + (40%)(MEA)
Computation of Final Computed Average (FCA)
CSA =
MEA =
FCA = (60%)(CSA) + (40%)(MEA) Passing Percent Average: 50
Transmutation Table
Range of Computed Averages Range of Transmuted Values Grade General Classification 94.0000 – 100.0000 97 – 100 1.00 Outstanding
88.0000 – 93.9999 94 – 96 1.25 Excellent 82.0000 – 87.9999 91 – 93 1.50 Superior 76.0000 – 81.9999 88 – 90 1.75 Very Good 70.0000 – 75.9999 85 – 87 2.00 Good 64.0000 – 69.9999 82 – 84 2.25 Satisfactory 58.0000 – 63.9999 79 – 81 2.50 Fairly Satisfactory 52.0000 – 57.9999 76 – 78 2.75 Fair
50.0000 – 51.9999 75 3.00 Passed
Below Passing Average 5.00 Failed
6.00 Failure due to absences 8.00 Unauthorized or unreported withdrawal
Note: A student's Computed Average is a consolidation of Class Standing Percent Average and Major Exam Percent Average.
Course Policies Maximum Allowable Absences: 10 (held 3 times a week); 7 (held 2 times a week)
Date Revised: Date Effectivity: Prepared By: Checked By: Approved By:
May 30, 2016 June, 2016 Engr. Gerard C. Cortez CpE Faculty
Engr. Gerard C. Cortez Chairperson, CpE Department
Dr. Doris Bacamante
Dean, College of Engineering and Architecture