
Data Structures: Objects, Abstraction and Design Using
C++
Eliott Koffman, Paul Wolfgang
ISBN 0471467553

Enterprise Application Development
with Visual C++ 2005
Max Fomitchev
ISBN 1584503920 |
| CSE122: Intermediate
Programming |
| Dr. Max I. Fomitchev |
| Assistant Professor of Computer Science & Engineering |
| 111J IST, Pennsylvania State University,
University Park, PA 16803 |
| Email:
fomitchev@psu.edu · Phone: (814) 235-9785 |
|
| Syllabus |
|
doc ·
Blue Book Description |
| Philosophy |
| Learn
programming by programming. The class is taught in
lecture / lab format: as soon as a concept is introduced and
explained the students are expected to put the knowledge to use
by writing their own code.
Microsoft Visual C++ 2005 integrated development environment
is used for writing programs in C++. In
the course of the class students master advanced C++ concepts
such as pointers, references, operators, heap vs. stack
allocation, user-defined types, exceptions, classes and
object-oriented programming. Students also explore advanced data
types such as vectors, lists, stacks, queues, and trees
(Standard Template Library - STL). Special emphasis is paid to
class design including member visibility, proper usage of const,
declaring constructors, destructors, and dynamic memory
management.
To encourage participation and studying
students are awarded (or deducted) extra points for correctly
(or incorrectly) answering for-credit questions during oral
in-class quizzes. |
| Prerequisites |
|
CSE 103 or CMPSC 201; MATH 140; C++ |
| Student Projects |
|
As a part of this course students were required
to design and implement a piece of software of there choosing.
Here are some shining examples (with
screenshots!):
|
| Class Topics |
- Visual Studio 2005 Introduction: editing,
formatting, creating projects, project settings, file
locations
- C++ preprocessing and compilation
process, preprocessor definitions (#define, #ifdef, #pragma
once), debugging and stepping through the code
- Pointers, array, references, and
character strings
- Problem analysis and solution synthesis –
an email checker problem, HW1
- const references, const pointers, passing
parameters by reference
- Classes and objects, grouping data with
operations, member visibility
- Polymorphism: virtual methods, abstract
classes, inheritance
- Polymorphism: Shapes example, HW1 due
- Static methods and static data members,
static and instance data
- Templates, Complex Template, +, -, =, +=,
*, + T assignment
- Pre-test review
- TEST 1
- Vector Template: Constructors,
Destructor, InsertAt, [] operator
- Vector Template: Copy-Constructor, Deep
copy, =; String Class assignment, HW3
- Linked List, HW2 due
- Stack, Flow Chart
- Queues and Deques
- Recursion
- Trees: 101, Traversals
- TEST 2
- Trees: Binary Search
- Trees: Heaps and Priority Queues
- Trees: Huffman
- Trees: Maps and Hash tables
- Sorting: Selection, Bubble, Insertion,
Quick
- Sorting: Merge, Heap, Pessimal O(N)
- Self-Balancing Trees: AVL
- Self-Balancing Trees: Red-Black
- Self-Balancing Trees: 2-3, 3-4
- Graphs: 101, Traversal
- Graphs: Weighted Graphs
|
| Lecture Notes (PowerPoint) |
- C++
Primer
-
Pointers in C++
-
Stack
and Heap Allocation
-
Exceptions in C++
-
Classes &
Operators
-
Templates & STL
-
Coding Standard and Best Practices
-
Design
-
Const References & Pointers
- Vector
-
Sequential Containers &
Linked List
- Stack
-
Queues & Deques
-
Recursion
-
Trees
- Binary Search
Trees (BST)
-
Heap &
Priority Queue
-
Huffman Code
|
| Grading Policy |
| Attendance |
30% (each class worth 1%) |
| 3 Homework |
10% each |
| 3 Tests |
7% each |
| Final Exam / Project |
19% |
| Extra points |
+1% / -1% |
|
| Letter Grades |
| A |
95-100% |
| A- |
90-94% |
| B+ |
87-89% |
| B |
83-86% |
| B- |
80-82% |
| C+ |
76-79% |
| C |
70-75% |
| D |
60-69% |
| F |
0-59% |
|
|