Vietnam National University, Hanoi

College of Technology

 

 

Advanced Programming

Autumn, 2009

 

 

Faculty Information

 

Name: Bui The Duy                                        Office Location: 313, E3 Building

Email: duybt@vnu.edu.vn

 

Name: Le Anh Cuong                                    Office Location: 306, E3 Building

Email: cuongla@vnu.edu.vn

 

Name: Pham Bao Son                                   Office Location: 313, E3 Building

Email: sonpb@vnu.edu.vn

 

Name: Nguyen Phuong Thai                          Office Location: 306, E3 Building

Email: thainp@vnu.edu.vn

 

Tutors

Name: Ngo Thi Duyen                                        Office Location: 313, E3 Building

Email: duyennt@vnu.edu.vn

 

Name: Le Minh Khoi                                        Office Location: 306, E3 Building

Email: khoilm@vnu.edu.vn

 

Name: Nguyen Duy Khuong                             Office Location: 313, E3 Building

Email: khuongnd@vnu.edu.vn

 

Name: Bui Ngoc Thang                                   Office Location: 306, E3 Building

Email: thangbn@vnu.edu.vn

Resources

-         Textbook: Walter Savitch, Problem Solving with C++, 6e, Pearson Addison Wesley

-         Course Reading material

Purpose of the Course

 

The main goal of this course is to equip students with problem solving techniques used in programming software solutions including structured design, good programming style, testing strategies, and debugging strategies. Moreover, the course will introduce students with abstract data types and object-oriented design.

 

Note that you will be learning and using C++ as a vehicle towards these goals, but this course is not about learning C++ in its entirety.

Course Description

This course covers the basic fundamentals of the C++ Programming language. The following list includes the main topics covered in the course.

  1. C++ basics
  2. Functions: call by value, call by reference
  3. Objects and classes
  4. ADTs, strings and arrays
  5. Recursion
  6. Templates, pointers and linked lists
  7. Inheritance (if time permits)
  8. Exception handling (if time permits)

Course Requirements

 

+        Class attendance is required. Absence of more than 2 lectures will result in immediate fail of the course.

Student Objectives

 

At the end of the course, students should:

-        be able to understand the concept of using computer program to solve practical problems

-        be able to design programs to solve certain problems

-        be able to implement designed program with C++

 

Grading Procedures

 

The overall grade for this course is based on your performance in (i) assignment and (iv) final exam, with weights as given below. 

 

Course component grading weight (it can be changed):

 

  No.

Component

Percentage

Schedule

Duration

 1 

Assignment 1

 10%

Week 4

 2 weeks

 2 

Assignment 2

 20%

Week 7

 2 weeks

3

Assignment 3

 20%

 Week 10

2 weeks

4

Final Examination

 50%

 Week 15

90 mins

 

Total 

 100%

 

 

  

Calendar Timetable

2 hours lecture, 4 hours lab per week

 

Week

Content

Preparation

Labs

Assessment

Note

1

Introduction to Computer and C++ programming

Chapter 1

Chapter 1 summary

 

 

Analysis and design guideline

2

C++ basics

Chapter 2

In class exercise 01

Chapter 2 summary

   

Assignment 1 released

(Programming Style Guideline)

Assignment 1 in Vietnamese

3

Flow of control

Chapter 3

In class exercise 02

Chapter 3 summary

Lab 01

How to use DevC

 

Some terms in Vietnamese

4

Functions that return a value

Chapter 4

Lab 02 Assignment 1 dues Some terms in Vietnamese - chapter 4

5

Functions for all subtasks

Chapter 5

Lab 03   Assignment 2 released

6

I/O streams - introduction to class

Chapter 6

Lab 04    

7

Arrays

Chapter 7

Lab 05 Assignment 2 dues  

8

Strings

Chapter 8

Lab 06  

Assignment 3 released

9

Pointers

Chapter 9

Lab07  

Advanced Reading: Chapter 13

10

Classes

Chapter 10

Lab08 Assignment 3 dues

 

11

Advanced topics: inheritance, ...

Chapter 11

Chapter 15

Lab09  

 

12

 

 

Lab10  

 

13

 

 

Lab11