Northeastern University School of Engineering Technology GET 4100 – Introduction to C++

Instructor: Duy Nguyen, Ph.D. Work: (781) 981-2079 Email: [email protected] Class homepage: http://www.angelfire.com/ma3/los

Text: “Absolute C++” by Walter J. Savitch.

Course objectives: This course will introduce the students to the basic syntax required to write simple, yet efficient, C++ programs. The emphasis at the beginning of the course will be placed on learning the C++ syntax while application examples applying the techniques learned will be stressed towards the end.

Grading: Midterm exam (20%) Final exam (25%) Programming assignments (30%) Final project (25%)

Assignments: There will be a total of 6 short programming assignments. Each assignment is graded as follows: Documentation (10%) Execution (40%) Source Code (50%).

An important integral part of a good program is the documentation explaining the purpose of the program and the flow of the program for others to follow (up to 10%). The programs showing a “sufficient” amount of coding effort will receive up to 50% while programs that correctly execute without warnings or errors will additionally receive up to 40%. Programs that work perfectly for the test cases I have chosen will receive the full 90% in addition to the documentation percentage.

Final project: There will be a major program to be turned in at the end of the course (last day of class). I will make the assignment as cumulative as possible, incorporating a majority of the ideas covered in the course, but at the same time can be completed within a “reasonable” amount of time. Reasonable will be defined based upon the performance of the students in the class.

** This course follows an honor code system. The students are welcome to share ideas and work together as long as each student writes his/hers own programs. Please write down the names of those students you worked with. **

1 Schedule

Week 1 Introduction to the Course Chapter 1, 2  Overview of C++  Standard input/output (cout, cin)  Compiling and running a C++ program  Data types  Writing a sample program, compile it, and execute it Week 2 Operators, and simple built-in C++ functions Chapter 2  Arithmetic expressions  C built-in functions  Standard input/output (cout, cin) Week 3 Loops and logical expressions Chapter 2, 7  For loop  While loop  Do-while loop HWK#1 due  AND, OR, NOT  IF-THEN-ELSE  Switch Week 4 Functions Chapter 3, 4  Functions that return a single result  Void functions with input parameters HWK#2 due  Scope rules  Calling functions by value vs by reference  Top-down design illustrated  Assign finali project Week 5 Arrays Chapter 10.1,  Introduction to arrays Chapter 10.2, 11.1  Storage of arrays in memory HWK#3 due  Declaring and referencing 1-dimensional arrays in a program  Strings manipulation Week 6 Array programming and functions Chapter 10.4, 10.5  Writing programs using arrays  Passing arrays to functions Week 7 Review for Midterm Exam Midterm Exam Week 8 Pointers Chapter 12.1, 12.2  Introduction to pointers  Memory storage of pointers HWK#4 due  Declaring and referencing pointers  Pointers vs. arrays Week 9 Programming with pointers Chapter 15, 6.1  Passing pointers to functions  Pointer arithmetic  Arrays of pointers Week 10  Introduction to object-oriented programming Chapter 6  Classes  Objects HWK#5 due  Member functions  Constructors  Destructors Week 11  Nested classes Chapter 6, 9,

2  Object composition & notes  Namespaces  Dynamic memory allocation  Enhanced functions (inline, overloaded, etc.)  QUIZ Week 12  Friends Chapter 8 & notes  Assignment operators  Deep and shallow copy  The “this” pointer  Function polymorphism Week 13  Operator overloading Chapter 8, 13, 15,  Copy constructors & notes  Conversion operators HWK #6 due Week 14  Introduction to data structures (linked list, queues, stacks) Notes  Work on final project Week 15  Applications of data structures Notes  Work on final project Week 16  FINAL EXAM

3