This course and this student manual reflect a collective effort by your constructor, the Vietnam Education Foundation, The Massachusetts Institute of Technology (MIT) Open Courseware Project and faculty colleagues within Vietnam and the United States who served as reviewers of drafts of this student manual. This course is an important component of our academic program. Although it has been offered for more than three years, this latest version represents an attempt to expand the ranges of sources of information and instruction so that the course continues to be up-to-date and the methods well suited to what is to be learned.
You will be asked from time to time to offer feedback on how the student manual is working and how the course is progressing. Your comments will inform the development team about what is working and what requires attention. Our goal is to help you learn what is important about this particular field and to eventually succeed as a professional applying what you learn in this course.
Thank you for your cooperation. I hope you enjoy the course.
Course name: Programming Fundamentals In C++ (501125)
Semester: Spring Semester 2008
Institute: Faculty of Computer Science And Engineering, Hochiminh City University of Technology, Vietnam.
Credit Hours: 3
Instructor: Dr. Duong Tuan Anh, Associate Professor
Office Location: Faculty of Computer Science and Engineering, Ho Chi Minh City University of Technology, 268 Ly Thuong Kiet, Dist. 10, Ho Chi Minh City.
Office hours: 14:00 – 17:00 Wednesday or by appointment
Tel: 8647256/Ext. 5841;
Fax: (848) 8645137.
Email:dtanh@cse.hcmut.edu.vn.
Website: http://www.dit.hcmut.edu.vn/~dtanh/
Teaching Assistants:
Mr. Nguyen Quoc Viet Hung (nqvhung@cse.hcmut.edu.vn)
Mr. Ly Hoang Hai (lhhai@cse.hcmut.edu.vn)
Mr. Nguyen Xuan Minh (nxminh@cse.hcmut.edu.vn)
Mr. Nguyen Van Doan (nvdoan@cse.hcmut.edu.vn)
This course is a comprehensive introductory course that is intended for students who have no background in computer programming. This course provides basic knowledge and skills on programming with two important programming paradigms: structured programming and object-oriented programming. The course covers structured programming paradigm in depth and introduces just some basics on object-oriented programming. The programming language used in this programming course is C++.
Upon successful completion, students will be able to:
In order to meet the course objectives, the students are expected to fulfill the following requirements:
This course is one semester long, meeting from February 18th through May 29th. Our semester is 16 weeks long. The course meets for three period lecture session and two period lab session. It consists of 42 periods for lectures and 28 periods for lab works (1 period = 45 minutes).
Chapter 1: Introduction to Computer and Programming
Chapter 2: Basic Elements in C++
Chapter 3: Completing the Basics
Chapter 4: Selection Structures
Chapter 5: Repetition Structures – Arrays and Structured Programming
Chapter 6: Functions and Pointers
Chapter 7: Introduction to Classes
Chapter 8: Object Manipulation - Inheritance
This course maintains a laboratory for its students. During semester, a group of lab assistants hang out in lab to answer students’ questions and help them in debugging. There are 10 lab sessions in the course and the first lab session starts at the third week of the semester. For each lab session, which is 3 period long, the students are requested to finish at least some required assignments. Notice that lab assistants will grade the performance of each student at the end of each lab session. Lab assistants inspect the working of student programs and ask questions on their program codes in order to grade the student lab performance in each lab session.
Lab work materials
Lab assignments for all lab sessions are given in Programming Fundamentals in C++ -Laboratory Manual, which is available in the instructor’s web site.
System requirement
This course is designed to be delivered in an environment supporting a C++ compiler. There is supplementary information included about the Visual C++ 6.0 development environment.
To facilitate the goal of making C++ accessible as a first-level programming course, the following instructional methods are used in this course.
End-of-Chapter Exercises. Every chapter in the Lecture Notes contains several diverse skill-builder and programming exercises. Students are encouraged to do all the exercises after each chapter. Solutions to some of them are provided by instructor or teaching assistants in the class.
Focus on Problem Solving. In the Chapter 2, 3, 4 and 7, each chapter contains a Focus on Problem Solving section with one complete problem per chapter. Each application is used to demonstrate effective problem solving within the context of a complete program solution. Two programming projects – one for structured programming paradigm and one for object-oriented programming paradigm will ask each student to write larger programs in order to help students to enhance their problem-solving skills.
Pseudocode Descriptions. Pseudocode is stressed throughout the course. Flowchart symbols are described, but are only used when visually presenting flow-of-control constructs.
Gentle Introduction to Object-Oriented Programming. In the course, there are two chapters (7and 8) that provide a “mini-course” introduction to basic object-oriented programming concepts and design techniques. Object oriented design techniques are illustrated in details in a Focus on Problem Solving section of Chapter 7 with one complete application. For more advanced features of object-oriented programming in C++, another course named “Object-Oriented Programming” which is offered one semester later will cover.
The final grade of each student shall be calculated by means of a weighted average as follows:
Lab works and programming projects: 30%
Midterm examination: 20%
Final examination: 50%
Lab work and project evaluation:
Lab work evaluation is based on lab work performance of all 10 lab sessions. Project evaluation is based on the working of 2 programming projects. Sample topics for programming projects are given in the last pages of Programming Fundamentals in C++ -Laboratory Manual, which is available in the instructor’s web site.
Lab assignments and projects are evaluated using the following grading criteria:
-correctness: 40%
- appropriate use of arrays/structures/pointers/functions and/or classes: 25%
- program structure (including efficiency): 10%
- program style: 10%
- documentation: 10%
- format of output: 5%
Scores are given in the range from 0 to 10 (rounded to 0.5) with the following interpretation:
![]() |
Exams
Exams are closed-book exams. Exams include one or more of: short answer, multiple choice, trace the given code, debug the given code or given a problem description, produce a solution in the form of a short program or a function(s).
The problems given in the exams are like those on exercises and lab work. The students who spend more time and effort in doing exercises and lab assignments will certainly have better performance in the exams. Exam scores are given in the range from 0 to 10.
Lecture Notes, Exercises, Laboratory Manual
Available at the instructor’s website.
Text book:
[1] G. J. Bronson, Program Development and Design Using C++, 3nd Edition, Brooks/COLE Thomson Learning, 2006.
(All lecture notes and exercises used in this course are mainly from this textbook. Students can find more C++ language features, problem-solving guidelines as well as good exercises and assignments from this book for further self-study.)
Reference books:
[2] H. M Deitel and P. J. Deitel, C++ How to Program – 3rd Edition, Prentice-Hall, 2001.
(This book contains a lot of good C++ programming examples. All examples in this book are very well explained.)
[3] J. Farrel, Object-Oriented Programming Using C++, 2nd Edition, Course Technology/Thomson Learning, 2001.
(If students want to go in depth in object-oriented programming with C++, they will find this book very helpful.)
[4] D. Gosselin, Microsoft Visual C++ 6.0, Course Technology/Thomson Learning, 2001.
(This book is a supplementary text for the students who want to know more about Microsoft Visual C++ 6.0 programming environment.)
There are 16 sessions which compose of 14 lectures, 1 mid-term exam and 1 final exam.
![]() |
To continuously improve course content and design, students are requested to complete end-of-course evaluation form. The student comments will be carefully reviewed and used to improve the quality of the course. Please take a moment to complete the following end-of-course feedback form.
OVERALL
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
COURSE CONTENT
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
INSTRUCTION
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
FACILITIES AND EQUIPMENT
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
SUPPORT
______Very Satisfied
______Satisfied
______Neutral
______Dissatisfied
______Very Dissatisfied
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Thank you for your comments.