SRJC Course Outlines

10/1/2022 4:35:45 PMCS 11 Course Outline as of Summer 2010

Changed Course
CATALOG INFORMATION

Discipline and Nbr:  CS 11Title:  DATA STRUCT & ALGORITHMS  
Full Title:  Data Structures and Algorithms
Last Reviewed:5/8/2017

UnitsCourse Hours per Week Nbr of WeeksCourse Hours Total
Maximum4.00Lecture Scheduled4.0017.5 max.Lecture Scheduled70.00
Minimum4.00Lab Scheduled06 min.Lab Scheduled0
 Contact DHR0 Contact DHR0
 Contact Total4.00 Contact Total70.00
 
 Non-contact DHR0 Non-contact DHR Total0

 Total Out of Class Hours:  140.00Total Student Learning Hours: 210.00 

Title 5 Category:  AA Degree Applicable
Grading:  Grade or P/NP
Repeatability:  00 - Two Repeats if Grade was D, F, NC, or NP
Also Listed As: 
Formerly:  CIS 11

Catalog Description:
Untitled document
Continued study of computer programming including specification and implementation of data structures, and analysis of associated algorithms. Topics include: abstract data types, dynamic memory, templated functions and classes, iterators, exception handling, linked lists, stacks, queues, recursion, trees, searching, sorting, and inheritance. Several significant programming projects are written in C ++.

Prerequisites/Corequisites:
Course Completion of CS 10


Recommended Preparation:
Eligibility for ENGL 1A or equivalent

Limits on Enrollment:

Schedule of Classes Information
Description: Untitled document
Continued study of computer programming including specification and implementation of data structures, and analysis of associated algorithms. Topics include: abstract data types, dynamic memory, templated functions and classes, iterators, exception handling, linked lists, stacks, queues, recursion, trees, searching, sorting, and inheritance. Several significant programming projects are written in C ++.
(Grade or P/NP)

Prerequisites:Course Completion of CS 10
Recommended:Eligibility for ENGL 1A or equivalent
Limits on Enrollment:
Transfer Credit:CSU;UC.
Repeatability:00 - Two Repeats if Grade was D, F, NC, or NP

ARTICULATION, MAJOR, and CERTIFICATION INFORMATION

Associate Degree:Effective:Inactive:
 Area:
 
CSU GE:Transfer Area Effective:Inactive:
 
IGETC:Transfer Area Effective:Inactive:
 
CSU Transfer:TransferableEffective:Spring 1991Inactive:
 
UC Transfer:TransferableEffective:Spring 1991Inactive:
 
C-ID:
 CID Descriptor: COMP 132 Programming Concepts and Methodology II SRJC Equivalent Course(s): CS10C

Certificate/Major Applicable: Major Applicable Course



COURSE CONTENT

Outcomes and Objectives:
Upon completion of the course, students will be able to:
Untitled document
Upon completion of the course, students will be able to:
1.  Analyze algorithms for efficiency.
2.  Use data abstraction as a tool for modeling.
3.  Design the system life cycle through software engineering principles.
4.  Construct linked lists, pointers, queues, stacks, and trees as abstract data types.
5.  Design and construct iterative approaches to algorithm development.
6.  Evaluate a variety of sorting and searching methods for efficiency.

Topics and Scope
Untitled document
A.  Abstract data types: operator overloading
   1.  Overloading arithmetic, shorthand arithmetic, and relational
       operators
   2.  Overloading the insertion and extraction operators
   3.  Overloading the pre and post decrement and increment operators
   4.  Overloading the square brackets (subscript) operator
   5.  Overloading operators as member functions, free (global)
       functions, and friend functions.
   6.  Default parameters
B.  Pointers and Dynamic Memory
   1.  Address operator
   2.  Dereference (indirection) operator
   3.  Pointer assignment
   4.  Arrow (dereference and select) operator
   5.  Arrays of pointers
   6.  NULL
   7.  Relationship of arrays and pointers
   8.  "new" operator
   9.  "delete" operator
   10. Memory leaks
   11. Reference types
C.  Dynamic memory in classes
   1.  Assignment operator, including checking for self-assignment
   2.  Copy constructor
   3.  Destructor
D.  Container Classes
   1.  Documenting member functions with pre/post conditions
   2.  Using std::size_t
   3.  Returning a reference
   4.  User defined namespaces
E.  Linked lists
F.  Templated functions and classes
G.  Iterators, including user-defined
H.  Standard Template Library
I.  Exception handling
J.  Stacks, including expression evaluation
K.  Queues
L.  Recursion
   1.Development techniques
   2.Analysis techniques
M.  Trees:  specification, implementation, and big-O analyses of
   1.Binary search trees
   2.Heaps
N.  Searching:  specification, implementation, and big-O analysis of
   1.Sequential search
   2.Binary search
   3.Hashing
O.  Sorting:  specification, implementation, and big-O analysis of
   1.  Selection sort
   2.  Insertion sort
   3.  Bubble sort
   4.  Merge sort
   5.  Quicksort
   6.  Heapsort
P.  Inheritance
   1.  Contrasted with composition
   2.  "is-a" relationship and "has-a" relationship
   3.  Protected
   4.  Constructors in inheritance
   5.  Initializor lists
   6.  Polymorphism and virtual functions
   7.  The slicing problem
   8.  Pure virtual functions and abstract classes

Assignments:
Untitled document
1.  Read approximately 40 pages per week from text book.
2.  Write computer programs.
3.  Correct errors in programs with multiple runs of test data.
4.  Write documentation for each program so that is easy to understand and use.
5.  Take objective exams, including final exam.

Methods of Evaluation/Basis of Grade.
Writing: Assessment tools that demonstrate writing skill and/or require students to select, organize and explain ideas in writing.Writing
10 - 20%
Written program documentation
Problem solving: Assessment tools, other than exams, that demonstrate competence in computational or non-computational problem solving skills.Problem Solving
20 - 60%
Computer programming assignments
Skill Demonstrations: All skill-based and physical demonstrations used for assessment purposes including skill performance exams.Skill Demonstrations
0 - 0%
None
Exams: All forms of formal testing, other than skill performance exams.Exams
20 - 60%
Multiple choice, true/false, matching items, completion, short answer & programming
Other: Includes any assessment tools that do not logically fit into the above categories.Other Category
0 - 0%
None


Representative Textbooks and Materials:
Untitled document
Data Structures and other Objects Using C++, by Michael Main and Walter Savitch,  Addison Wesley Longman, 3rd edition, 2004.

Print PDF