logo CodeStepByStep logo

CodeStepByStep is a web application to help you practice solving Java, C++, and Python programming problems online.

To use CodeStepByStep, first create an account, then choose a problem from our list. Type a solution and submit it to our server. The system will test it and tell you whether your solution is correct.

CodeStepByStep has instructor features to allow a teacher to see which problems have been solved by his/her students, so you can assign our problems as homework. If you're a teacher, sign up for an account or request instructor access for your existing account.

CodeStepByStep is developed by Marty Stepp. Marty works as a lecturer at Stanford University Computer Science, though CodeStepByStep is an independent tool not directly affiliated with Stanford University nor any other university.

CodeStepByStep is also actively developed by:

  • Sara Jackson: developer (Spring 2017-present)

And many thanks to past developers who have contributed to this project:

  • Alex Miller: full-time developer (2016-17)
  • Ryan Rowe: student developer (2016)
  • Melissa Medsker Galloway: student developer (2016-present)
  • Jessica Miller: developer (2012-14)

Many exercises have been added by teaching assistants and colleagues; we thank them for their help.

CodeStepByStep is inspired by similar tools such as Practice-It, CodingBat, JavaBall, CodeWrite. Many problems have been added by teaching assistants and colleagues; we thank them for their help. We also thank Glen Herrmannsfeldt from Caltech for contacting us with many bug fixes and suggestions for improvement to the quality of the system.

Our Privacy Policy

CodeStepByStep version beta (2017/11/30)

  • C version: gcc 4.8.4
  • C++ version: g++ 4.8.4
  • C# (Mono) version: 3.2.8
  • HTML (PhantomJS) version: 2.1.1
  • Java version: 1.8.0_91
  • JavaScript (NodeJS) version: 7.10.1
  • Kotlin version: 1.2.0
  • ML version: /usr/lib/smlnj/bin/sml: Error -- unable to map 655360 bytes, errno = 1 /usr/lib/smlnj/bin/sml: Fatal error -- unable to allocate memory object for BIBOP
  • PHP version: 5.5.9-1
  • Python version: 3.4.3
  • Racket version: 5.3.6
  • Ruby version: 1.9.3p484

What's New:

  • [2017/11/30] v0.7.8.0. Added Kotlin language support.
  • [2017/11/21] v0.7.7.4. Ruby language improvements and bug fixes.
  • [2017/11/17] v0.7.7.3. Better protection against excessive output and infinite loops/crashes, and other bug fixes. C# Main method improvements.
  • [2017/09/15] v0.7.6.2. Problem Sets feature v1 added. Ability to create, view, list (teachers/TAs), and solve (students) a problem set.
  • [2017/08/15] v0.7.5.8. Create Accounts for My Students feature added (Sara!). Ability to import student roster from an Excel spreadsheet.
  • [2017/07/20] v0.7.5.2. Introduction of HTML/CSS problems.
  • [2017/07/08] v0.7.5.0. Revamped problem search (Sara!). New C#, Python, and Racket (Melissa!) problems added. Bug fixes.
  • [2017/06/23] v0.7.4.0. New Achievements feature (Sara!). Lots of additional Java and Python problems added. Miscellaneous bug fixes.
  • [2017/06/18] v0.7.3.5. Better references and links for Java problems.
  • [2017/06/16] v0.7.3.4 posted. Embedded problems support. "Keep me logged in" feature.
  • [2017/04/03] v0.7.2.3 posted. Karel the Robot problems support added.
  • [2017/03/29] v0.7.2.2 posted. ML and Ruby language initial support added.
  • [2017/03/21] v0.7.2.0 posted. C# language initial support added. Welcome to new CSBS developer Sara Jackson!
  • [2017/02/25] v0.7.1.8 posted. Racket functional language added.
  • [2016/12/02] v0.7.1.3 posted. Download student results as CSV feature added.
  • [2016/10/02] v0.7.0.6 posted. Additional C problems; support for C-style arrays and NULL values.
  • [2016/09/25] v0.7.0.5 posted. Initial JavaScript and C problem support.
  • [2016/08/24] v0.7.0.0 posted. Heavy refactoring and bug fixes. Initial PHP support.
  • [2016/08/05] v0.6.9.8 posted. Improvements to linked list / binary tree problems. Extend session timeout. New problems added. Bug fixes.
  • [2016/02/19] v0.6.2 posted. Bug fixes with C++ compiler errors. Bug fixes for Python syntax highlighting.
  • [2015/12/18] v0.6.1 posted. Bug fixes and improved CSS on mobile devices. Several problems added.
  • [2015/11/30] v0.6.0 posted. Initial version of asynchronous job queue added. This will improve performance during high-traffic times and facilitate later work to integrate AWS / cloud features into the system.
  • [2015/11/24] v0.5.4 posted. Improved icons; redesigned UI for test runs. New refactored compiler error / exception output for Java/C++/Python including exception stack traces.
  • [2015/11/23] v0.5.3 posted. Initial Python support.
  • [2015/11/19] v0.5.0 posted. UI cleanup.
  • [2015/09/01] Initial site created.

Is there a problem? Contact a site administrator.

© Marty Stepp, all rights reserved.