CSC 121
CSC 121
Course Information
Rationale
To develop a solid understanding of a data structure requires several things. One must
understand how data is stored in the computer memory. The other is learning algorithms
in manipulating the data contained in the data structure. Most importantly, the focus
of this course is to make the student understand the performance characteristics of the
data structure so that when called upon to select a suitable data structure for a particular
application, the student can make an appropriate decision.
Learning Outcomes
LO1. Gain understanding of data structures such as list, stacks, queues, trees, sets, graphs,
including their design, implementation and use.
LO2. Analyze and explain the trade-offs of the different design and implementation
LO3. Gain proficiency in processing the data structures through searching and sorting
LO4. Build and traverse trees and graphs using recursion
1
S10. An ability to apply mathematical foundations, algorithmic principles, and computer
science theory in the modeling and design of computer-based systems in a way that
demonstrates comprehension of the trade-offs involved in the design choices.
S11. An ability to apply design and development principles in the construction of software
systems of varying complexity, in accordance with applicable standards.
Performance Indicators
As evidence of attaining the above learning outcomes, students are required to do and/or
submit the following during the indicated dates of the term. The rubrics for these outputs
are provided.
Methods of Assessment
1. Course/homework assignments
2. Examinations and quizzes
3. Standardized tests
4. Laboratory Exercises / Machine Problems
Scoring Rubrics
The core computing courses under the BSCS curriculum are classified into the following
activities:
1. Computer programming
2. Written and oral discussions
3. Term papers or case studies
The course CSC 121 involves items 1 and 2 of of these activies. The scoring rubrics are the
following: each of these activities.
2
Computer Programming
1. Specifications
a. (Exceptional) The program works and meets all of the specifications.
b. (Acceptable) The program works and produces correct results and displays
them correctly. It also meets most of the other specifications.
c. (Amateur) The program produces correct results but does not display them
correctly.
d. (Unsatisfactory) The program is producing incorrect results.
2. Readability
a. (Exceptional) The code is exceptionally well organized and very easy to follow.
b. (Acceptable) The code is fairly easy to read.
c. (Amateur) The code is readable only by someone who knows what it is supposed
to be doing.
d. (Unsatisfactory) The code is poorly organized and very difficult to read.
3. Reusability
a. (Exceptional) The code could be reused as a whole or each routine could be
used.
b. (Acceptable) Most of the code could be reused in other programs.
c. (Amateur) Some part of the code could be reused in other programs.
d. (Unsatisfactory) The code is not organized for reusability.
4. Documentation
a. (Exceptional) The documentation is well written and clearly explains what the
code is accomplishing and how.
b. (Acceptable) The documentation consists of embedded comment and some
simple header documentation that is somewhat useful in understanding the
code.
c. (Amateur) The documentation is simply comments embedded in the code with
some simple header comments separating routines.
d. (Unsatisfactory) The documentation is simply comments embedded in the code
and does not help the reader understand the code.
5. Delivery
a. (Exceptional) The program was delivered on time.
b. (Acceptable) The program was delivered within a week of the due date.
c. (Amateur) The code was within 2 weeks of the due date.
d. (Unsatisfactory) The code was more than 2 weeks overdue.
6. Efficiency
a. (Exceptional) The code is extremely efficient without sacrificing readability and
understanding.
b. (Acceptable) The code is fairly efficient without sacrificing readability and
understanding.
c. (Amateur) The code is brute force and unnecessarily long.
d. (Unsatisfactory) The code is huge and appears to be patched together.
Criteria Weight
Specifications 20%
Readability 20%
3
Criteria Weight
Reusability 20%
Documentation 10%
Delivery 10%
Efficiency 20%
TOTAL 100%
Essay
Criteria Weight
Relevance 30%
Thoroughness 30%
Organization 20%
Mechanics 20%
TOTAL 100%
Written/Oral Discussion
1. Active Participation
4
a. (Exceptional) Actively and regularly contributes to discussion; Initiates discus-
sion on issues related to class topic.
b. (Acceptable) Voluntarily contributes to discussion without prompting.
c. (Amateur) Few contributions; Seldom volunteers but responds to direct queries.
d. (Unsatisfactory) Absent. Does not contribute.
2. Relevance of Participation to topic under discussion
a. (Exceptional) Contributions are relevant and promote in-depth analysis of mate-
rial.
b. (Acceptable) Contributions are always relevant to discussion.
c. (Amateur) Contributions are sometimes off-topic or distracting.
d. (Unsatisfactory) Contributions are off-topic or distract class from discussion.
3. Evidence of level of preparation
a. (Exceptional) Consistently well-prepared; Investigates and shares relevant ma-
terial not explicitly assigned.
b. (Acceptable) Clearly read and thought about the material in advance of class.
c. (Amateur) Appears to have read the material, but not closely or did not read all
material.
d. (Unsatisfactory) Not adequately prepared; Does not appear to have read the
material in advance of class.
4. Listening/Cooperation
a. (Exceptional) Models good classroom citizenship. Listens without interrupting.
Responses to others are appropriate. Promotes active participation by others.
b. (Acceptable) Participates regularly without monopolizing; Listens and responds
to contributions of others.
c. (Amateur) Participates occasionally; Does not respond to contributions of others.
d. (Unsatisfactory) Inattentive or makes inappropriate or disruptive comments.
Criteria Weight
Participation 30%
Relevance 30%
Preparedness 20%
Listening/Cooperation 20%
TOTAL 100%
Grading System
Exams
There will be three major exams with respective total scores and schedules to be determined
and agreed in the class.
Quizzes
Quizzes will be given any time during the regular class schedules. A rubric may be used
to rate the answers.
5
Laboratory Activities
Grading Scheme
Measurement Weight
Prelim Exam 20%
Midterm Exam 20%
Final Exam 20%
Quizzes 15%
Laboratory Activities 25%
TOTAL 100%
The student should be able to get the minimum rate of 60% to pass the course. The rate is
mapped to the actual grade based on the following scale:
Course Outline
Week Topics
1 Introduction: What are the benefits of data abstraction
2 Asymptotic notation and analysis
3 Arrays
4 Linear Lists
5 Linkedlist
6 Analysis of Arrays vs Linkedlist
7 Stack
8 Queue
9 Trees and Binary Tree
10 Binary Search Tree and AVL Trees
11 Recursion and Tree Traversals
12 Sets
13 Graphs
14 Graph Algorithms and Traversals
15 Searching algorithms
16 Sorting algorithms: Insertion, Binary
17 Sorting algorithms: Selection, Distribution
6
Week Topics
18 Final Exam
Learning Plan
a. Required
b. Optional
1. Collins, William J., Data Structures and the Standard Library, McGraw-Hill
(2003). ISBN 978-0070487086
2. Bailey, Duane A., Java Structures: Data Structures in Java for the Principled
Programmer, McGraw-Hill (2003). ISBN 978-0072399097
Policies
1. Your instructor may or may not explicitly check attendance every day. However, if
you are caught exceeding your allowable cuts for the semester, you may be given a
grade of 5.
2. In case you cut, it will be your responsibility to know the material covered for the
day. The instructor reserves the right to give unannounced quizzes or graded lab
exercises at any time.
3. No makeup tests will be given unless you can present a medical certificate or an
immediate member of your family died. Make up tests will solely be on the teachers
discretion.
4. Playing games is strictly prohibited during class hours. Web browsing and doing
email are also prohibited, unless done in connection with the current lecture or lab
topic and allowed by the teacher.
7
5. Use of communication devices is prohibited during class hours. Please turn them off
during class.
6. Class requirements are due during class hours, unless otherwise specified. Late
submission will merit deductions as specified by the teacher.
7. Cheating will not be tolerated. Cheating in any requirement will result in a minimum
penalty of having a grade of 0 for that requirement. Duplicated projects/lab exercises
will merit penalties for both the student who copied and the student from whom the
work was copied.
8. Additional policies, with due consultation with the students, may be implemented
by the teacher to adapt to the class environment. Students are advised to be aware of
such updates, and to ask their instructor if anything is unclear.
Any student who, because of a disability, may require special arrangements in order to
meet the course requirements should contact the instructor as possible to make necessary
arrangements. Students must present appropriate verification from Institute Clinic during
the instructors office hours. Please note that instructors are not allowed to provide
classroom accommodation to a student until appropriate verification from Institute Clinic
has been provided.
Disclaimer