
C++ Programming: From Problem Analysis to Program Design
Malik
ISBN 1423902092
|
| CSE121: Introduction to
Programming (C++) |
| 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 |
| Master
skills by doing; improve by listening; share the knowledge;
learn from each other.
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++. To
make learning C++ fun the class is subdivided into several teams
that towards the second half of the semester start working on
their version of the popular Tetris game. There is no end to
creativity or possibilities! Team members supervised by team
leader work on the project together and learn C++ programming in
the process. Cooperation and collaboration between team members
and even individual teams is strongly encouraged on all
assignments. Sharing knowledge and helping each other are
essential elements of this class.
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 |
|
2 entrance units in math |
| Student Projects |
|
Here are some examples of student
Tetris projects (with screenshots!):
|
| Tools - Console Library |
|
Jeremy Bridon
(CSE major) was very kind to have developed and provided us with
the Console Library, which enables
developing interactive pseudo-graphic applications using console
mode operation.
Click Here to download the Console
Library. |
| Class Topics |
- Visual Studio 2005 Introduction: editing,
formatting, creating projects, project settings, file
locations
- Introduction into Computing & Programming
Concepts
- Problem Solving: Analysis & Synthesis,
Encapsulation & Abstraction
- Workflow: Analyze, Synthesize, Design,
Develop, Debug, Test, Deploy, Support
- Software Engineering & Software Lifecycle
- Modern Software Development Paradigms:
Procedural, OOP, Attributed
- Introduction into Visual Studio 2005
- Programming Language Basics: Keywords,
Operators, Variables, Literals, Constants
- Data Types and Data Type Conversion
- C++: Preprocessor, Compiler, Linker
- Program Organization
- Coding Standard, Comments & Documentation
- Control Structures: if, switch
- Loops: for, while, break & continue
- User-Defined and Built-In Functions
- Console & File I/O
- Arrays, Sorting & Searching
- Pointers & References
- Dynamic & Static Memory Allocation
- C and C++ Strings
- User-Defined Types, Type Definitions &
Unions
- Classes
|
| Lecture Notes (PowerPoint) |
-
Course Philosophy
|
| Grading Policy |
| Attendance |
10% |
| Lab Work |
20% |
| 3 Tests |
7% each |
| Quizzes |
20% |
| Team Project |
29% |
| Team Leader Bonus |
3-5% |
| Extra points |
+0.5% / -1% |
|
| Letter Grades |
| A |
98-100% |
| A- |
95-97% |
| B+ |
90-94% |
| B |
85-89% |
| B- |
80-84% |
| C+ |
76-79% |
| C |
70-75% |
| D |
60-69% |
| F |
0-59% |
|
|