Self-paced track

Materials for the self-paced track designed for students who already have significant programming background.

About the self-paced track
Read these general guidelines before going further.
For handin and grade info, log in and select `self-paced track' again.

The self-paced assignments are divided into two parts: exercises and projects. As you do these, stress quality over quantity; it is not crucial that you complete all of them, so don't rush. Try to write readable code that is easy to use and that works correctly in all circumstances.

You can work in groups of up to three on these. Working in pairs is best for these exercises, though. Try to choose a partner whose background with C++ is similar to yours.

Exercises

The exercises to ensure that you have a solid understanding of the C++ concepts we use in this course. You are expected to complete the exercises in order. After you complete these, you will have passed what we cover in lecture. I believe the exercises will take 2-4 hours to complete.

Exercise 0: Hello, World
Exercise 1: Checkbook
Exercise 2: Choices
Exercise 3: Prefix calculator

Projects

With any remaining time, you will work on your selection of projects. The projects are an opportunity for you to learn about new concepts on your own. The projects are designed to be fun, challenging, and new: please select projects involving topics new to you.

The specific projects are reasonable suggestions. For any of the projects you can choose an alternative goal, as long as you keep it simple enough that you can complete it at PGSS. Get a course staff member's approval for your own ideas.

Complete projects in any order you choose. Choose the ones that are more interesting first; don't do a project if you already know the material. You are not expected to complete all of them. (But you are welcome to continue working on projects after the self-paced track is over; we'll be happy to help.)

Project 0: Object-oriented design
Project 1: Computer design
Project 2: Assembly language
Project 3: Lisp
Project 4: Free-for-all