
ORDER |
Contents
- Abstraction and Analysis
- Data Abstraction
- Container Classes
- Linked Structures and Iterators
- Stacks and Queues
- Recursion
- Trees
- C++IntroductionforPythonProgrammers
- C++Classes
- C++ Dynamic Memory
- C++ Linked Structure
- C++ Templates
- Heaps, Balanced Trees, and Hash Tables
- Graphs
- Algorithm Techniques
|
THIS BOOK
is intended for use in a traditional college-level data structures
course (commonly known as CS2). This book assumes that students
have learned the basic syntax of Python and been exposed to the
use of existing classes. Most traditional CS1 courses that use
Python will have covered all the necessary topics, and some may
have covered a few of the topics covered in this book. We have
found that most students successfully completing a CS1 course
know how to use classes, but many of them need more experience
to learn how to design and write their own classes. We address
this issue by including a number of examples of class design
in the first few chapters of this book.
Pythons object-oriented features
make it an elegant language for starting a data structures course,
but one potential drawback of Python for a data structures course
is that it hides the complexity of memory management. This is
a benefit in a first course, but we think that in a second course
it is important that students begin to understand some of these
low-level details that the Python interpreter hides from them.
Since we can cover the basic data structures in less time using
Python, there is time to learn a second language, even in a single-semester
CS2 course. After the students have continued to improve their
Python programming skills while covering the first few chapters
of the book, it is relatively easy for them to learn a second
object-oriented language. By using C++ as the second language,
the students are exposed to a lower-level, compiled language.
The syntax of C++ is more complicated than Python, but that is
a relatively small hurdle once students have mastered fundamental
programming concepts using Python. For example, now that they
understand the basic concepts of programming and the semantics
of statements such as conditional statements and looping statements,
they can focus on learning the C++ syntax for these statements.
|