We all know that students  benefit for problem solving exercises. Creating these sorts of problems can be difficult and time consuming. Evaluating them and help students with then can be even worse. There are a couple of online sites that can help here. I’m going to highlight several of them here – Pex4Fun (from Microsoft), Problets (from Amruth N. Kumar at Ramapo College of New Jersey) and Try F# (from Microsoft). I think these can be very useful in support of students learning programming either as part of a course or on their own. Pex 4 Fun supports Visual Basic, C# and F# programming. Problets are available for several C-family languages including C# and Java. Try F# is, surprise, all about F#. They are all worth checking out though. And they can be fun as well as educational.

Pex 4 Fun

PexWeb2What is it? Pex for fun brings programming in C#, Visual Basic, and F# to your web browser. If you have never visited Pex for fun before, we suggest you follow the tutorials in the Learn area.

Is it just for fun? The full version of Pex and Code Contracts integrates into Visual Studio, and can be launched from the command line as well. (Download, Documentation) Pex can explore an entire project at once and can automatically generate a comprehensive test suite of traditional unit tests.

Who created Pex for fun? Pex for fun was brought to you by the Pex Team, part of the Research in Software Engineering (RiSE) group at Microsoft Research.

I have more questions. You can discuss Pex for fun on our MSDN Forums for Pex, where you can also post your Permalinks to share them with other people.

I want to provide feedback. If you have found a bug, you can send a bug report directly to the Pex developers at pexbug@microsoft.com. You can also get in touch with the Pex developers for any other reason at pexdata@microsoft.com.

Can I take any code in the browser and turn it into a puzzle? If your browser supports it, you can Install the Pex For Fun Accelerator.

Problets

(This is taken in edited from from a recent email to the SIGCSE mailing list)

Problets are web-based software tutors for programming topics. They provide problem-solving practice on expression evaluation (arithmetic, relational, logical, assignment), if, if-else, switch, while, for, and break/continue statements, arrays and functions (behavior of functions, debugging functions) in C/C++/Java/C#. They are free for educational use.

The unique features of problets that make them effective are:

  • They explain the step-by-step evaluation/execution of the correct solution;
  • They adapt to the learning needs of the student.

You can find out more about problets at:http://www.problets.org This site contains information about solving problems with problets, how problets can be used in a course, sample problets, and student testimonials.

Try F# Tutorials

F# is a functional language so it is a different programming paradigm from what most of us learned or have taught before. It is however a very valuable paradigm to know and use. For teachers who want to offer their students a comfortable way to learn F# this is the site to use. The tutorials on this web site are designed to give you an easy way to teach programming using F#. The benefit of using online tutorials is that students don't need to install any complex software package and can easily access tutorials from any machine. The Teaching F# page contains some additional useful links to existing course materials on F# as well as articles and presentations that may serve as additional inspiration for the classroom.