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 STRUCTURES AND ALGORITHMS ANALYSIS
LABORATORY
Course Code: DATASTRUCT
Course Credit: 1 Unit Year Level: 4th Year
Co-requisite: 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 CO5 LABORATORY ORIENTATION
Rules and Regulations
Good Housekeeping
EXPERIMENT 1: DATA STRUCTURES AND ALGORITHMS
Object Creation
- The Thermostat Class
A Runnable Object-Oriented Program - Writing a bank.cpp program
Experiment 1: Developing an Old Comic Books Collection Program
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 2
3 CO5 EXPERIMENT 2: ARRAYS
Arrays
- Writing an array.cpp program
Dividing a Program into Classes - Writing a lowarray.cpp program
Class Interfaces
- Writing a higharray.cpp program
Experiment 2: Developing a Classes Interface Program
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 3
3 CO5 EXPERIMENT 3: ORDERED ARRAYS
Ordered Arrays
- Writing an orderedArray.cpp program
Storing Objects
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3],
- Writing a classDataArray.cpp program
Experiment 3: Developing a Program That Stores Objects Direct observation B[4], B[5]
Week 4
3 CO5 EXPERIMENT 4: THE BUBBLE SORT
Bubble Sorting
- Writing a bubbleSort.cpp program
Experiment 4: Developing a Program That Sorts a Deck of Cards Using Bubble Sort
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 5
3 CO5 EXPERIMENT 5: THE INSERTION SORT
Insertion Sort
- Writing an insertSort.cpp program
Storing Objects
- Writing an objectSort.cpp program
Experiment 5: Developing a Program That Sorts a Deck of Cards Using Insertion Sort
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 6
3 CO5 EXPERIMENT 6: STACKS
Stacks
- Writing a Stack.cpp program
Reversing a Word Using Stacks - Writing a reverse.cpp Program
Delimiter Matching Using Stacks - Writing a brackets.cpp Program
Experiment 6: Developing a Real-World Situation Program Using Stacks
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
PRELIM EXAMINATION Week
7
3 CO5 EXPERIMENT 7: QUEUES AND PRIORITY QUEUES
Queue
- Writing a Queue.cpp Program
Priority Queues
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3],
- Writing a priorityQ.cpp Program
Experiment 7: Developing a Program in a Real World Situation Using a Queue or a Priority Queue
Direct observation B[4], B[5]
Week 8
3 CO5 EXPERIMENT 8: LINKED LISTS
Linked Lists
- Writing a linkList.cpp Program
Finding and Removing Specified Links - Writing a linkList2.cpp Program
Experiment 8: Developing A Train Cars Program Using Linked Lists
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 9
3 CO5 EXPERIMENT 9: ABSTRACT DATA TYPES
Abstract Data Types
- Writing a linkStack.cpp Program
Double-Ended Lists
- Writing a firstLastList.cpp Program
A Queue Implementation Using Linked List - Writing a linkQueue.cpp Program
Experiment 9: Developing A Priority Queue Program Using Linked List
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 10
3 CO5 EXPERIMENT 10: SPECIALIZED LISTS
Sorted Lists
- Writing a sortedList.cpp Program
List Insertion Sort
- Writing a listInsertionSort.cpp Program
Doubly Linked Lists
- Writing a doublyLinked.cpp Program
Experiment 10: Developing A Priority Queue Program Using Sorted List
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 11
3 CO5 EXPERIMENT 11: RECURSION
Recursion
- Writing a triangle.cpp Program
Anagramming
- Writing An anagram.cpp Program
Binary Search
- Writing A binarySearch.cpp Program
Recursion vs. Stacks
- Writing A stackTriangle.cpp Program
Experiment 11: Developing a Program That Uses Recursion to Calculate the Factorial of a Number
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 12
3 CO5 EXPERIMENT 12: APPLIED RECURSION
The Towers of Hanoi
- Writing A towers.cpp Program
Mergesort
- Writing A merge.cpp Program
Sorting By Merging
- Writing A mergeSort.cpp Program
Experiment 12: Developing a Program That Calculates The Number of Moves Required to Solve the Towers of Hanoi Puzzle
Experiment Actual
Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
MIDTERM EXAMINATION Week
13
3 CO5 EXPERIMENT 13: QUICKSORT
Partitioning
- Writing A partition.cpp Program
Basic Quicksort
- Writing A quickSort1.cpp Program
Experiment 13: Developing a Sorting Program that Uses the Quicksort Algoritm
Experiment
Actual Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 14
3 CO5 EXPERIMENT 14: IMPROVING QUICKSORT
Improving Quicksort
- Writing A quickSort2.cpp Program
Handling Small Partitions
- Writing A quickSort3.cpp Program
Experiment 14: Developing a Quicksort Program to Sort Much Larger Arrays
Experiment
Actual Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 15
3 CO5 EXPERIMENT 15: BINARY TREES
Basic Binary Tree Operations
Binary Search Tree
- Writing A tree.cpp Program
Experiment 15: Developing a Program that Transforms Infix Expression
Experiment
Actual Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 16
3 CO5 EXPERIMENT 16: 2-3-4 TREES
Implementing 2-3-4 Trees in C++
- Writing A tree234.cpp Program
Experiment 16: Developing a Program to Create a 2-3-4 Tree
Experiment
Actual Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 17
3 CO5 EXPERIMENT 17: HASH TABLES & QUADRATIC PROBING
Linear Probing
- Writing A hash.cpp Program Quadratic Probing
Double Hashing
- Writing A hashDouble.cpp Program
Experiment
Actual Programming
Portfolio Performance Assessment Rubric
Direct observation
A[1], A[2], A[3], A[4], A[5], B[1], B[2], B[3], B[4], B[5]
Week 18
3 CO5 EXPERIMENT 18: DEPTH FIRST & BREADTH FIRST TRAVERSALS
Experiment
Actual Programming Submission of Student
Portfolio Performance
A[1], A[2], A[3], A[4], A[5], B[1],
Depth First Search
Breadth First Search Submission of Student Projects
Projects Assessment
Rubric
Direct observation Final Project
B[2], B[3], B[4], 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) Cortez, G.C. (2013). Data Structures and Algorithms Laboratory Manual. Holy Angel University 3) Goodrich, M.T. (2011). Data Structures & Algorithms in C++. John, Wiley, Danvers, MA
4) Main, M. (2011). Data structures & other objects using C++. Pearson
5) 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 Phython: 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) Experiments
3) Exercises 4) Final Project
Grading System Class Standing/Experiments/Final Project (60%) 3 Major Exams (40%)
TOTAL (100%)
Passing Grade (60%)
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
Note: For purposes of illustration, the sharing between CSA and MEA is shown below as 60% and 40%, respectively, when computing the Computed Average for each Grading Period. Depending on the grading parameters set for a subject the sharing may be 65%-35%, 60%-40%, or other possible combinations.
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)
Date Revised: Date Effectivity: Prepared By: Checked By: Approved By:
Note: A student's Computed Average is a consolidation of Class Standing Percent Average and Major Exam Percent Average.
Course Policies Maximum Allowable Absences: 3 (held once a week)
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