You are on page 1of 3

CompE260 : Data Structures and Object Oriented Programming in

C++ [Fall 2016]


Instructor

Mahasweta (Sweta) Sarkar


http://jason.sdsu.edu/~sarkar

Prerequisite

CompE 160 and Math 245

When/Where

TTh: 12:30-1:15pm; Room: P-147

Office Hours

Tuesdays and Thursdays: 11am - noon (or by appointment)

Office
Location

Engineering Building
Room: E 202C

Contact Info

Email: msarkar2@mail.sdsu.edu (preferred)


Phone: 619 594 7797

TA Info

Ms. Apoorva Deshpande (deshpande.apoorva17@gmail.com)

Required Text

ADTs, Data Structures and Problem Solving with C++, Larry Nyhoff

Purpose:
This course will explore how data is represented in binary computers. Complexity and magnitude
(including sizing and timing) analysis will be studied since these are basic tools available for
scientific study of data structures and algorithms; a deep understanding of these tools is essential
for any study in computer science.
The use of Abstract Data Types (ADTs) will be used throughout the course. ADTs are very useful
for expressing ways to organize complex data and algorithms that operate on them such that the
performance can be determined. This course will use sorting and searching algorithms on the
ADTs and their performance must be studied as well. Recursions and dynamic structures will be
discussed since they are frequently used in various data structures and algorithms we will be
analyzing.
Programming is a VERY important part of this course. Students are expected to be familiar with
the mechanics of using either the C or C++ compilers and should have experience with basic
linear data structures. You will be taught OOP in some details and will learn to use pointers
extensively. This course will explore the following topics:
OOP, Algorithm Analysis, Lists, Stacks, Queues, Trees, Hashing, Sorting, Graphs.
Programming Assignments:
All assignments must successfully compile and properly execute on the Unix operating system
running on the SDSU host, Jason, though work may be done on your own
PC/MAC/Workstation/Laptop. I might selectively ask a few students to demonstrate their

program on Jason. If you do not already have a Jason account please plan on acquiring one by
contacting Dr. Chris Paolini (paolini@engineering.sdsu.edu).
The first three programming assignments will be relatively easy and fundamental and I expect
you to do them by yourselves. The latter ones can be worked on in groups of two students. Please
let me know if you want me to assign you a programming buddy.
I will not accept late assignments so please make sure you turn in your assignments on time. Soft
copies of the assignments should be turned in through Blackboard (hard copies not required).
Your assignment should comprise of the following: (a) a thoroughly commented source code (b)
runtime output of your code (several runs with various inputs as required by the assignment) (c)
and a section named DISCUSSION which should comprise of your comments on what your
program is doing/not doing, corner cases that you have not tested OR specific inputs on which it
will not work, etc.
Exams and Grading Policy:
I will conduct five short exams which I call workshops and 1 final exam. The final grade for
this course will be assigned to you on a relative scale. The dates for all these class activities are
marked on the calendar attached to this syllabus. Class participation will contribute towards your
final grade so please make sure that you are in class especially for the workshops and the exams.
Grading: 5 workshops: 35%
Final Exam : 25%
Programming Assignments: 40%
General Comments:
I will use the BlackBoard extensively. Please log into BB to check for assignments, solutions and
grades. This course is quite intense and will require quite a bit of your time. It will require
extensive reading and long hours in front of the computer. Please plan your semester accordingly.
Tentative Lecture Schedule for August & September
8/30
9/1
9/6
9/8
9/13
9/15
9/20
9/22
9/27
9/29

T
Th
T
Th
T
Th
T
Th
T
Th

Discuss syllabus
What is ADT, Pointers and Dynamic Memory Allocation [Ch 2]
Pointers, Arrays [Ch 3], Classes [Ch 4]
Classes [Ch 4]
Workshop 1 (Review Quiz)
Classes [Ch 9.1, 9.2]
Classes [Ch 9.2, 9.3] Program1 due (Calculator)
Classes [Ch 9.2, 9.3]
Classes [Ch 9.2, 9.3]
Lists [Ch 7, Ch11] (Workshop 2: Classes)

Tentative Lecture Schedule for October


10/4
10/6
10/11
10/13
10/18
10/20
10/25
10/27

T
Th
T
Th
T
Th
T
Th

Lists [Ch 7] Program 2 due (Classes)


Lists [Ch 7], Doubly Linked Lists, Code Discussion [Ch 8]
Doubly Linked Lists, Code Discussion [Ch 8]
Stacks & Queues[Ch7,8]
OOP [Ch14] (Workshop 3: Lists)
OOP [Ch 14] Program 3 due (Linked List)
OOP [Ch 14]
OOP [Ch 14]
Tentative Lecture Schedule for November

11/1
11/3
11/8
11/10
11/15
11/17
11/22
11/24
11/29

T
Th
T
Th
T
Th
T
Th
T

OOP [Ch 14]


Recursion, Algorithm Analysis [Ch 10] (Workshop 4:OOP)
Recursion, Algorithm Analysis [Ch 10] Program 4 due (OOP)
Binary Trees & Hash Table [Ch12]
Binary Trees & Hash Table [Ch12]
Binary Trees & Hash Table [Ch12]
Binary Trees & Hash Table [Ch12]
Thanksgiving Holiday
Binary Trees & Hash Table [Ch12]

Tentative Lecture Schedule for December


12/1
12/6
12/8
12/13
12/15

Th
T
Th
T
Th

Sorting [Ch 16] (Workshop 5: Binary Trees)


Sorting [Ch 16] Program 5 due (Binary Tree)
Graph
Graph/Review
Final Exam: 10:30am - 12:30pm (in P-147)