Advanced C++
D89 Year Long
Grades 9-12
For more information, contact:
Naomi R. Salaman
303-447-5314
naomi.salaman@bvsd.org
Course Description:
This is a second year advanced C++ programming course. More templates, classes, graphics, and group projects in C++ are covered. The Java language will also be implemented and used for web applications.
Course Outline:
| Week | Topics | Assignments |
| 1 | Review of basic syntax of C++ including classes and use of projects. Stress the use of comments in programs. | Write a guess my number game that uses classes and allows for a limited number of guesses and a reward for a correct answer. |
| 2 | Continue with review of graphics to incorporate into Guess My Number game. | Add graphics to the Guess My Number Game. |
| 3 | Review of classes and their implementation. Show video on classes. | Create an employee class that has the person's name, address, Social Security number. |
| 4 | Talk about inheritance and review. | Add to the employee class by inheriting a type of position. |
| 5 | Using classes with graphics. | Create a smiley face with eyes, nose and mouth. Use classes. |
| 6 | Review the use of the mouse in programs. | Add the mouse to the Smiley Face and have the mouth change when you click the mouse over the mouth. You can also do a similar thing with the eyes. |
| 7 | Continue with the Smiley Face. | |
| 8 | Talk about apstring, apmatrix classes. | Program 5 short problems using apstring and apmatrix. |
| 9 | Answer questions about apstring and apmatrix. | Continue to work on 5 problems. |
| 10 | Talk about large projects and let students pick a project to complete. | Create a project that uses graphics, the mouse and classes. It can be a game or some type of application. You may choose. |
| 11 | Continue with major project. | Continue with major project. |
| 12 | Continue with major project. | Continue with major project. |
| 13 | Take digital pictures of students and show them how to incorporate them into their programs. | Make an opening screen for your projects that include your picture, your name (you can use both horizontal and vertical writing) and some graphic rotations. |
| 14 | Continue with Opening Screen assignment. | Continue with Opening Screen assignment. |
| 15 | Talk about file operations using fstream. | Make a program that reads and writes information to a file. |
| 16 | Talk about the importance of working in teams and making your code understandable to others. | Divide into teams of 3-4 and create a puzzle project that allows you to move the pieces around the screen and place them. As a group assign the different members parts of the program to do and then put it all together with documentation. |
| 17 | Group Puzzle Project | Group Puzzle Project |
| 18 | Group Puzzle Project | Group Puzzle Project |
| 19 | Group Puzzle Project | Group Puzzle Project |
| 20 | Review template syntax. | Create a generic function that swaps the values of two variables with which it is called. Display the original and the swapped variables. |
| 21 | Template classes. | |
| 22 | Project that includes everything up to this point. You may work in pairs or individually. | Create a project that uses graphics, mouse, classes, templates, and is well documented. |
| 23 | Continue Project. | Continue Project. |
| 24 | Continue Project. | Continue Project. |
| 25 | Continue Project. | Continue Project. |
| 26 | Introduction to Java. | Go to the web and find a Java tutorial and spend at least 2 days on it. Take notes as necessary. |
| 27 | Similarities with C++. Use J++ to write programs. Familiarize yourself with the operating environment. | Write a simple Hello World program and get it to work. Add more to it. |
| 28 | Java byte codes, Java virtual machine, Just-in-Time compilation | Write a program that takes input of the date in the form month day year. From this, it calculates the number of days since the beginning of the year. |
| 29 | Java classes and similarity to C++ | Use example of simple bank account and see how it works and add anything to it that might be helpful. |
| 30 | Pointers and linked lists. | Use the car example to see some privacy issues and then look at linked list example. |
| 31 | Loops and arrays | Write a simple program that uses one dimensional arrays and for loops. |
| 32 | The windows abstract toolkit (what it contains and how it works) | Create an applet boilerplate and then add to it. |
| 33 | Graphics and packages | Write a graphic program that makes a marquee scroll. |
| 34 | Animation and screen flicker. | Create an applet that replays a series of images that display something rotating. |
| 35 | Final Project using Java and/or Applets. Put it into a working web page. This is also the final exam. | Pick a project to write using Java or Applets and put it on a working web page. |
No textbook is used for this class. Assignments are distributed to the individual students by using the network. Assignments can be retrieved from the individual students' accounts when they have finished a project.
![]() ![]() ![]() |