GIVE NOW about ocw help & faqs contact us
6.S096 | January IAP 2013 | Undergraduate

# Introduction to C and C++

Your task is to make something nifty using primarily C or C++. The title of your project should be a statement of the problem it solves. For example:

- “I don’t have an egg timer GUI that plays a cool sound.”
- “There’s no game about placing pepperonis on pizza without any of them touching.”
- “Not every photo of a person’s face has a hat.”
- “None of the N-Queens solvers were written by me.”

The only requirements are that the project is appropriate in size for the number of people working on it, that it compiles and runs without any significant problems, and that you link with at least one third party library. We list some libraries you might be interested in below.

Use this as an opportunity to use many of the language features we presented in class, perhaps more than are actually called for by your project.

If your project doesn’t run on Windows, Linux, or OS X (maybe it runs on phones or robots), you should submit a short video of it in operation.

### Starter Kit

If you’re having trouble getting started, perhaps you’ll find what you need in the Starter Kit!

### Example Projects

#### Countdown

Use wxWidgets to create a countdown clock. Then keep going: allow multiple countdowns, display the time in words, or make it look cool.

#### Pepperoni Placement

Use Cinder to create a game where you place pepperonis on a pizza without any of them overlapping or going off the edge. (It’s fun in real life, trust me.) Then keep going: by the end of their tutorial, you’d have a particle system with which you could add sweet effects.

### Third-Party Libraries

You must use at least one third-party library. Here’s a list you can use for inspiration. Can you think of more?

#### 2D/3D Games

- Cinder
- openFrameworks
- SFML
- Allegro
- SDL
- OpenGL
- Ogre
- Irrlicht

#### GUI

- Qt
- wxWidgets
- GTK+

#### Graphics

- Cairo
- libpng
- ImageMagick
- Haru Free PDF Library

#### Audio

- PortAudio
- Synthesis ToolKit
- RtAudio
- libsndfile
- fftw
- sox

#### Database

- sqlite3

#### Math

- cblas

#### Physics

- Chipmunk
- Bullet
- Box2D

#### AI

- OpenCV

#### Utility

- Boost
- ncurses
- libxml2
- zlib

#### Web

- curl

## Course Info

##### Instructors

- Tom Lieber
- Kyle Murray
- Frank Li

##### Departments

- Electrical Engineering and Computer Science

##### As Taught In

January IAP 2013

##### Level

Undergraduate

##### Topics

- Engineering
  - Computer Science
    - Programming Languages
    - Software Design and Engineering

##### Learning Resource Types

assignment Problem Sets
notes Lecture Notes
group_work Projects
assignment_turned_in Programming Assignments with Examples

# You are leaving MIT OpenCourseWare

Please be advised that external sites may have terms and conditions, including license rights, that differ from ours. MIT OCW is not responsible for any content on third party sites, nor does a link suggest an endorsement of those sites and/or their content.