You are on page 1of 10

CC104 – DATA STRUCTURE AND ALGORITHM

ASIA PACIFIC COLLEGE OF ADVANCED STUDIES


City of Balanga, Bataan

BACHELOR OF SCIENCE IN INFORMATION TECHNOLOGY

COURSE SYLLABUS

COURSE CODE : CC104


COURSE TITLE : DATA STRUCTURE AND ALGORITHM

COURSE DESCRIPTION: This course helps the students develop this capability through the design, implementation and application of abstract data types (ADT’s) as a way
of representing, organizing and manipulating data; in particular stacks, queues, lists, sets, hash-table, trees, and graphs. ADTs represent models
and associated operations on those models. ADTs are designed using language features supporting abstractions (classes or type definitions with
associated functions); and implemented using specific language constructs (arrays, structures and linked- structures) to represent the data; and
associated operations are coded using functions/methods. ADTs are then used and applied as building blocks in developing software to solve
computing problems.

Experience in designing and implementing ADTs will enable the students to be able to choose, given a particular computing problem,
which ADT, as well as which implementation strategy is the most appropriate one to use considering the nature of the data, and the various
operations that are needed to manipulate the data. The design, implementation and application of these ADT’s require intermediate programming
knowledge and skills, the use of proper coding standards, and application of proper testing and debugging techniques.

PRE-REQUISITE : CC1O3

UNITS : 3

CONTACT HOURS PER WEEK : 2 HOURS LECTURE and 3 HOURS LABORATORY

1|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

OUTCOMES:
On the completion of the degree, student is expected to demonstrate the following institutional outcomes as reflected from the school’s vision-mission and
core-values statement:

1. TECHNOLOGICAL SAVVY: Students demonstrate adeptness in the use of modern technology especially computers, to be more productive and efficient individuals.
2. LOGICAL REASONING: Students demonstrate the ability to analyze, evaluate, reason, and develop evidence-based arguments and decisions using sound procedures.
3. SELF-DEVELOPMENT: Students demonstrate continuous pursuit of improving their skills and capabilities in order to realize and maximize their potentials.
4. SOCIAL EMPOWERMENT: Students demonstrate a sense of autonomy and self-confidence in making personal choices, actively participating in the society and
promoting social equity that also involves the ability to affect and control other aspects of the community.
5. COMMUNICATION: Students demonstrate effective oral and written communication skills, in both Filipino and English, to interact within their personal and
professional communities.
6. TECHNICAL PROFICIENCY: Students demonstrate technical knowledge and skills required in the specialist and professional job role and responsibilities in order to
achieve the expected outputs.
7. LIFELONG LEARNING: Students demonstrate heightened awareness on the significance of life and of learning, the ability to manage and evaluate own process skills,
strengths and weaknesses, and willingness and perseverance to continuously accept and seek new challenges in learning.
8. Employ RTA (Receive-Think-Answer) technique in all aspects of their personal and professional lives as learners.

On the completion of the course, student is expected to be able to do the following:

PROGRAM OUTCOMES CODE COURSE OUTCOMES


1. Apply knowledge in computing, science and mathematics appropriate Design, Implement, test and debug a program based on a given
to the discipline. specialization that uses and implements abstract data types:
2. Understand best practice and their applications a. Stack
3. Analyze complex problems and identify and define the computing CO1 b. Queues
requirements appropriate to its solution. c. Priority queues
d. Sets and
4. Identify and analyze user needs and take them into account in the
e. Maps
selection, creation, evaluation and administration of computer based
systems.
5. Design, implement and evaluate computer-based systems, processes,
components or programs to meet desired needs and requirements
under various constraints.

2|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

6. Apply knowledge through the use of current techniques, skills, tools CO2 Argue strength and witnesses among multiple implementations for a
and practices necessary for the IT profession. problem. (i.e on the aspects of iterative vs recursive solutions and on the
aspects of abstraction, encapsulation and information hiding.
7. Function effectively as a member or leader of a development team
recognizing the different roles with a team to accomplish a common
goal
8. Assist in the creation of an effective IT project plan
9. Communicate effectively with the computing community and with Select and apply appropriate debugging and testing techniques to ensure the
society at large about complex computing activities through logical correctness of a program and compliance to given specifications, to solve a
writing, presentations, and clear instructions. computing problem
10. Analyze the local and global impact of information technology on CO3
individuals, organizations, and society.
11. Recognize the need for and engage in planning self-learning and
improving performance as a foundation for continuing professional
development.

SEMESTRAL OUTPUT: Write User-Defined Functions


Choose appropriate control-flow structure (sequential, conditional or iteration constructs) for a given programming task.
Implement the following:
1. A function called Grader that takes a numeric score and returns a letter grade. Grader has one argument of type integer and returns a value of type char. Use the rule that 90 to
100 is an A, 80 to 90 is a B, 70 to 79 is a C, and less than 70 is an F.
2. The greatest common divisor of two positive integers is the largest integer that divides them both. For example, the greatest common divisor of 9 and 6 is 3. Write a function
declaration for a function with two integer arguments that returns their greatest common divisor.
3. Write a function that accepts a character argument and returns 1 if the argument is a valid letter (a-z/A-Z), otherwise returns 0.
4. Write a function declaration for a function that computes interest on a credit card account balance. The function has arguments for the initial balance, the monthly interest rate,
and the number of months for which interest must be paid. The value returned is the interest due. Do not forget to compound the interest, that is, to charge interest on the
interest due. The interest due is added into the balance due, and the interest for the next month is computed using this larger balance.
5. Write a function that accepts a numeric argument (N) and returns the factorial of N.

6. Create a main menu for function testing.

SAMPLE OUTPUT
Output Layout:

3|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

Main Menu
1 - Determine Student Grade
2 - Determine Greatest Common Divisor
3 - Determine a Valid Letter
4 - Determine Interest Due of a Credit Card Account
5 - Determine Factorial of a Number
Enter choice [1-5] :

TERM OUTPUT

PRELIM: Create a simple Mortgage Calculator/ Loan Calculator using the given formula. Proper declaration of variables is required.

Finding Remaining Principal Balance


The following formula will calculate your remaining balance if you have made t of N fixed payments in a timely basis (i.e. by the due date) so that no additional interest has
accrued.
P = P*(1 -((1 + J)**t - 1)/((1 + J)**N - 1))
where:

 P = principal, the initial amount of the loan


 I = the annual interest rate (from 1 to 100 percent)
 L = length, the length (in years) of the loan, or at least the length over which the loan is amortized.
 J = monthly interest in decimal form = I / (12 x 100)
 N = number of months over which loan is amortized = L x 12
 T=number of paid monthly loan payments

This is from Mortgage Backed Securities by William W Barlett and was sent to me by Victor Kheyfets.

MIDTERM: Basic Payroll Computation using C Programming


Compute the amount of tax that the employee would have to pay based on the following tax rate table:
Taxable Income Tax Due
Less than or equal 30,000 15% of income
over 30,000 but not over 50,000 5,000 + 20% of excess over 30,000
over 50,000 30% of income

4|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

FINALS: Analyze and Simulate Result of Algorithms


Debugging, Testing Plan and Results
For each challenge programming problem, the debugging and testing plan must be articulated in a report included in the source code.
The report must contain the following:
1. Student Info (ID, Name, Course, Major)
2. Testing Plan and Selection of Boundary condition inputs
3. Summary of the results of the testing plan
4. Known bugs and debugging plans
5. Results of the debugging plans with description why the results are problematic.

GRADING SYSTEM:

LECTURE (50%) LABORATORY (50%)


Major Exam 35% Laboratory Activities 15%
Quizzes 25% Weekly Output 25%
Written Output 15% Hands-On Exam 35%
Assignments 15% Term Output 25%
Recitation/Participation 10% 100%
100%
FINAL GRADE Comprehensive Exam 15%
Prelim Grade+Midterm Grade+Final Grade 70% 100%
Semestral Output 15%

TEACHING AND
COURSE OUTCOME LEARNING LEARNING
TOPICS TA LEARNING ASSESSMENT
(CO) OUTCOME (LO) OUTPUT
ACTIVITIES
CO1 Course Orientation Course Syllabus 2 Hours Lecture Discussion Recitation
Orient the students on
Discuss the rules and laboratory policies and
regulations guidelines

Discuss the different

5|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

expected output

Discuss the Grading


System

Explain the importance of


the course content in
relation to software
development
CO1, CO2 Explain the importance of Create a program Concept of abstraction 2 Hours TA: Quiz:
abstraction in using arrays with Review of type definitions Lecture  Lecture and Identification/Definition
programming emphasis on the Parameters and parameter 3 Hours Classroom and Hands On
creation of passing Laboratory Discussion Programming
Design, implement and programmer Array processing and  Programming Laboratory Activities
test programmer- defined/abstract manipulation Demonstration
defined/abstract data types data types Abstract data types (ADTs) LA:
involving arrays Interactive  Guided Hands-On
Programming
Session
 Independent
Programming
Assignments

CO1, CO2 Design ADT’s usingt Create a program Classes/Structures 2 Hours TA: Quiz: Identification/
ypedefs/ structs/classes using structures Class Definition/Type Lecture  Lecture and Definition
with emphasis on definition involving 3 Hours Classroom Hands On
Design, implement, and the creation of structures Laboratory Discussion Programming
test programmer- abstract data  Programming Laboratory Activities
defined/abstract data types types Demonstration
using structures/classes, LA:
functions/methods.  Guided Hands-On
Programming
Session
 Independent
Programming
Assignments

6|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

CO1, CO2, CO3 Illustrate the behavior of Program Linked-list 4 Hours TA: Quiz: Illustration/ Essay
different linked-list Evaluation using Linked-list operations Lecture  Lecture and and Hands On
operations and explain the Linked-list Linked-list traversal 6 Hours Classroom Programming
advantages and Structure Laboratory Discussion Laboratory Activities
disadvantages of using  Programming
linked-list Demonstration
LA:
Design, implement and  Guided Hands-On
test programmer- Programming
defined/abstract data types Session
using linked-lists  Independent
Programming
Assignments

Submission of Prelim Output


PRELIMINARY EXAMINATION 3 Hours Major Exasmination

CO1, CO2 Describe and illustrate the Create a program Stack definition 4 Hours TA: Quiz: Illustration/ Essay
behavior of the Stack involving stack Stack Application Lecture  Lecture and and Hands On
abstract data type like postfix Stack implementation using 6 Hours Classroom Programming
calculator, an array Laboratory Discussion Laboratory Activities
Identify sample balanced symbols Stack implementation using a  Programming
applications using a Stack linked-list Demonstration
LA:
Implement the ADT Stack  Guided Hands-On
using arrays and linked- Programming
list and test each operation Session
 Independent
Solve problems using the Programming
Stack ADT Assignments

7|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

CO1, CO2 Describe and illustrate the Create a program Queue definition 2 Hours TA: Quiz: Illustration/ Essay
behavior of the Queue involving queues Queue Application Lecture  Lecture and and Hands On
abstract data type like first-come- Queue implementation using 3 Hours Classroom Programming
first serve an circular array Queue Laboratory Discussion Laboratory Activities
Identify sample scheduling implementation using a  Programming
applications using a Queue problems linked-list Demonstration
LA:
Implement the Queue  Guided Hands-On
ADT using arrays and Programming
linked-list and test each Session
operation  Independent
Programming
Solve problems using Assignments
Queues
CO1, CO2, CO3 Describe and illustrate the Design and List definition 4 Hours TA: Quiz: Illustration/ Essay
behavior of the List Implement List Application Lecture  Lecture and and Hands On
abstract data type algorithm in List implementation using an 6 Hours Classroom Programming
Program array Laboratory Discussion Laboratory Activities
Implement the ADT List Evaluation and List implementation using a  Programming
using arrays and linked- simulation linked-list Demonstration
list and test each operation involving lists LA:
 Guided Hands-On
Solve problems using Programming
Lists Session
 Independent
Compare the Programming
performance/behavior of Assignments
the different operations
using array or linked-list
implementation
CO1, CO2 Define binary trees and Create a program Binary tree 2 Hours TA: Quiz: Illustration/ Essay
binary search trees using binary tree Binary tree representation of Lecture  Lecture and and Hands On
implementation expressions 3 Hours Classroom Programming
Illustrate the behavior of Binary traversal Laboratory Discussion Laboratory Activities
the different binary search Binary search trees  Programming
tree operations Demonstration

8|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

Perform binary tree LA:


traversals: pre-order, post-  Guided Hands-On
order, in-order Programming
Session
Draw tree representations  Independent
of infix expressions Programming
Assignments
Implement binary trees
and test each operation
Submission of Midterm Output
MIDTERM EXAMINATION 3 Hours Major Examination

CO1, CO2 Define a hash-table Reconstruct a Hash-table 4 Hours TA: Quiz: Illustration/ Essay
previous program Hash-table operations Lecture  Lecture and and Hands On
Illustrate the behavior of and make an Open Hashing 6 Hours Classroom Programming
different hash-table illustration on Closed Hashing Laboratory Discussion Laboratory Activities
operations Hash Table  Programming
Demonstration
Explain the advantages of LA:
using hash-table in  Guided Hands-On
improving add, search, Programming
and delete operations Session
 Independent
Programming
Assignments

CO1, CO3 Define and characterize Create a graph Graph Definition 4 Hours TA: Quiz: Illustration/ Essay
graphs representation of Graph Applications Lecture  Lecture and and Hands On
a program using Graph Representation 6 Hours Classroom Programming
Identify sample matrix and list Graph Traversal Laboratory Discussion Laboratory Activities
applications of graphs  Programming
Demonstration
Represent graphs using LA:
adjacency matrix and  Guided Hands-On
adjacency list Programming

9|Page OAA-CPDO|10-2017
CC104 – DATA STRUCTURE AND ALGORITHM

Illustrate the process of Session


graph traversals BFS and  Independent
DFS Programming
Assignments

3 Hours Submission of Final and Semestral Output


FINAL EXAMINATION Major Examination

REFERENCES:
1. Data Structure & Algorithm
Tutorials Point, Simply Easy Learning

2. Teach Java in 21 days


Laura Lemay

ONLINE REFERENCE:
1. www.cplusplus.com/reference/clibrary
2. http://www.iu.hio.no/~mark/CTutorial/CTutorial.html#Parameters

Prepared by: Noted by: Checked by: Approved by:

NIÑA B. PEREÑA KRISTIN DYAN E. AYANGCO JENNYFER N. MENDOZA FLOCERFIDA E. AYANGCO


Instructor Dean CPDO Director School President

10 | P a g e O A A - C P D O | 1 0 - 2 0 1 7

You might also like