IP 00 Syllabus
IP 00 Syllabus
1. General information
- Course name: Fundamentals of to Programming.
- Website: Moodle Online, course Cơ sở lập trình, teacher Nguyễn Minh Huy.
- Lecturer information:
• Office hour: room I82, Software Engineering Dept, 227 Nguyễn Văn Cừ (email).
2. Course description
This course provides students with basic and advanced concepts of programming in C/C+
syntax. Students will learn how to construct a complete C/C++ program by using basic
programming structures (variables, conditions, and loops), and compound structures (structs,
arrays, and functions) across multiple project files. Students will also learn how to use different
types of pointers for dynamic memory management, string manipulations, and binary files.
Moreover, students will also learn to implement basic data structures such as linked list, stack,
and queue.
3. Course objectives
At the end of this course, students are able to do the followings:
- Describe basic and advanced programming concepts in C/C++: programming languages,
algorithm, pointer, and binary file.
- Use basic and complex programming structures to construct C/C++ program: variable,
constant, condition, loop, function, struct, array, and string.
- Implement basic data structures: linked list, stack, and queue.
- Organize multiple-file projects to solve popular problems.
1
4. Course grades
Theory 65% Practice 35%
Progression 20% Theory assignments 10% Lab assignments 10%
5. Course policies
- Students walk-through slides and read textbook before each theory session.
- Students do individual assignments after each theory session.
- Any kinds of cheating and plagiarism in this course receives ZERO grade.
- Violation of submission rules (deadline, naming convention, ...) receives PENALTY grade.
- In emergency situations, course syllabus is subject to change without notice.
2 C Programming, Wikibooks,
http://en.wikibooks.org/wiki/C_Programming
3 Nhập môn lập trình và Kỹ thuật lập trình,
Trần Đan Thư, Nguyễn Thanh Phương,
Đinh Bá Tiến, Trần Minh Triết, Đặng Bình Phương,
NXB Khoa Học Kỹ thuật, 2011.
2
7. Teaching plan (11 weeks)
Weeks Contents Notes
- Programming: concepts, languages, environments.
1. Programming overview
- Algorithm: concepts, representations, efficiency.
- C/C++ overview: origin, program structure, Quiz: 2, 3
standard library.
2. Input and output - C/C++ basic: variable/constant, data-types,
expressions.
- IO stream: concept, read/write, formatting.
- Branches: if-else, switch-case. Quiz: 5, 6
3. Control flow statements - Loops: while, do-while, for. Group exercise
- Exercises.
- Function: concept, usage, passing arguments. Quiz: 9, 16
- Multiple-file project: header file, divide-
4. Function and struct
conquered technique.
- Struct: concept, usage.
- 1-D array: concept, manipulations. Quiz: Ch.8
5. Array 1-D
- 2-D array: concept, manipulations.
- String: C-string vs. std::string. Group exercise
6. String and text file (TA)
- Text file: file stream, read/write.
- Concept, declaration, operators. Quiz: 11
- Pointer vs. array.
7. Pointer
- Memory management: allocate/de-allocate,
dynamic 1-D array.
- Dynamic C-string manipulations. Quiz: 17
8. Advanced pointers
- Pointer of pointer: concept, dynamic matrix.
- Binary file vs. text file. Quiz: 22
9. Binary file
- Operations: open/close, read/write/seek. Group exercise
3
- Exercises.
- Singly linked list vs. array.
10. Linked list - Operations: init, empty, find, add, remove.
- Improvements: doubly.
- Stack: concept, operations. Group exercise
11. Stack and queue (TA)
- Queue: concept, operations.