Course Description

Object-oriented data organization and representation as strings, arrays, stacks, queues, dequeues, lists, sets, trees, tables, and graphs. Sorting and searching and algorithm design and performance analysis. Testing methods and data will be discussed


Course Learning Objectives


Description
CLO 1
  Discuss and analyze a variety of fundamental concepts and practices in the
  areas of software engineering.
CLO 2
  Apply object-oriented software design methodologies in software programs.
CLO 3
  Use standard abstract data types and data structures, including stacks, queues,
  and linked lists, trees, in the design of software programs.
CLO 4
  Apply standard algorithmic techniques including recursions, hashing,
  searching, and sorting, in the design of software programs.
CLO 5
  Use high-level software development tools, including advanced text editors,
  compilers, linkers, source-level debuggers in implementation and debugging of
  software programs.


Required Texts/Readings

Textbook

Textbook

•  W. Savitch, Problem Solving with C++, 10th edition, Addison-Wesley ISBN-10: 0134448286; ISBN-13: 978-0134448282

•  D.S. Malik, Data Structures Using C++, 2nd Edition, Course Technology, Cengage Learning, 2010, ISBN-10: 0-324-78201-2, ISBN-13: 978-0-324-78201-1,

References

•  Adam Drozdek, Data Structures and Algorithms in C++, 4th Edition, Cengage Learning, 2012, ISBN-13: 978-1133608424, http://www.cengage.com/search/productOverview.do?Ntt=9781133608424||5589174712 6710748015748294781245019119&N=16&Ntk=APG||P_EPI&Ntx=mode+matcha llpart ial#TableofContents

•  Michael T. Goodrich, et al, Data Structures and Algorithms in C++, 2nd Edition, Wiley, 2011, ISBN-13: 978-0470383278, http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP001657.html

•  Paul Deitel and Harvey Deitel, C++ How to Program, 9th Edition, Prentice Hall, 2013, ISBN-10: 0133378713, ISBN-13: 9780133378719, http://www.pearsonhighered.com/product?ISBN=0133378713, http://proquest.safaribooksonline.com.libaccess.sjlibrary.org/book/programming/cpluspl us/9780133378795

•  Bjarne Stroustrup, The C++ Programming Language, 4th Edition, Addison-Wesley Professional, 2013, ISBN-13: 9780321563842, http://www.stroustrup.com/4th.html, http://www.informit.com/store/c-plus-plus-programming-language-9780321563842

Additional reading material will be distributed to the class as appropriate


Final Examination

The final exam is a comprehensive evaluation that tests the student on all topics studied in this class with focus on parts covered after the midterm. A mix of question format is usually employed including coding problems, terminology, multiple choice and other formats.


Grading Policy

•  Extra credit options: not available but lowest quiz or homework may be dropped.

•  List of the percentage weight assigned to various class assignments.

•  Penalty (if any) for late or missed work.

  List of the percentage weight assigned to various class assignments:

   45% Quizzes/Homework (weekly)

   25% Midterm: Tuesday, March 16, 2021 6:00-8:45 pm.

   30% Final: Thursday, May 25, 2021 at 5:15-7:30 pm.

No make-ups exams except in case of verifiable emergency circumstances; once you are back in school, you need to take the exam within a week assuming that you provide documents to justify your absent and it is for a short time. No credit for any late turnings.


Grade bands:

A+ : > 94 A : 90 - 94 A- : 85 - 89

B+ : 80 - 84 B : 75 - 79 B- : 70 - 74

C+ : 65 - 69 C : 60 - 64 C- : 55 - 59

D+ : 50 - 54 D : 45 - 49 D- : 40 - 44

F : < 40 (0.5 - 0.9) = 1 (0.1 - 0.4) = 0


Important: As an example, a student with a final grade of 96 / 100 will have a letter grade of A (not A+). I.e. no special handling of border situations will be performed and the grading scale above will be followed strictly.

“A minimum aggregate GPA of 3.0 Studies (R, S, & V) shall be required of all students as a graduation requirement.”


Classroom Protocol

See class policies to be posted in the class website.

CMPE 180 A / Spring 2021, Course Schedule (Schedule subject to change with fair notice via the class website).

Week
Savitch
Chapters
Malik
Chapters
Topics
02/02


  Administrative

1,2,3

  C++ Basics, Flow of Control
02/09
4

  Procedural Abstraction, Functions 1

5

  Functions 2
02/16
6

  I/O Streams

7

  Arrays
02/23
8

  Strings, Vectors (In-Person: Problem Solving)

8

  Strings, Vectors
03/02
10, 17
1
  Algorithm complexity, C++ class

11, 15
2
  Object-oriented Design: inheritance, polymorphism, overloading.
03/09
9
3
  Pointers, virtual function, array-based list

18
4
  Standard template library.
03/16


  Midterm
03/16
13
5
  Linked lists and unordered linked lists.


5
  Ordered linked lists and doubly linked lists
03/23
14
6
  Problem solving using recursion.

14
6
  Recursion and backtracking
03/30


  Spring Break
04/06

7, 8
  Stacks and Queues (In-Person: Problem Solving)
04/13

9
  Search algorithms


9
  Hashing
04/20

10
  Simple sorting algorithms (In-Person: Problem Solving)


10
  Simple sorting algorithms, Quicksort


10
  Merge-sort, Heapsort
04/27

11
  Binary search trees and binary tree traversals


11
  Binary search trees and binary tree traversals
05/04

11
  AVL trees
05/11

11
  B-Tree (In-Person: Problem Solving)
05/25


  FINAL EXAM Tuesday, May 25, 5:15 – 7:30 pm


Important NOTE:

In rare occasions, the instructor may decide to administer evaluations where students are allowed to use their “paper notes”-(NO BOOK OR ELECTRONIC COPIES), so it is in your best interest to attend to class and take good notes; they may be handy in such situations.

Project grades are assigned to the whole team and each member gets the same grade unless a given member is suspected of not doing any work, in such cases the person could receive zero on the project and the report if the person fails to answer questions on her share of the work or the overall project structure.