Agenda
Software requirement: Microsoft Visual Studio 2008 or 2010 Professional/Premium/Ultimate Edition (or free Visual Studio Express Edition) or up or the Pex for Fun web for Parts 2-4. For Part 2, you can use the free Visual Studio Express Edition or use the Pex for Fun web.
You should register a Windows Live ID if you haven't had one. Then you log in to the Pex for Fun web, and register a course on introduction to programming taught by Dr. Xie. Browse the learning materials of Pex for Fun (only the materials in the "Getting Started" section). Here are a list of coding duels there.
- Part 1: (***If you have basic programming experience, DON'T go through this part***) Learning basic programming while having fun
- Download and install Microsoft Research Small Basic (you don't need Visual Studio to install Small Basic)
- Follow the Getting Started Guide PDF file linked from the Small Basic web to learn it (it may be helpful to browse the FAQs and their blog)
- Ask questions to mentors or at their Forums linked from the Small Basic web
- Part 2: Learning programming in C# within the Microsoft Visual Studio
- If you haven't had Microsoft Visual Studio 2008 or 2010 Professional/Premium/Ultimate Edition (or free Visual Studio Express Edition) installed, you can download and install it. You could also use the Pex for Fun web.
- If you are a Java programmer, the following links are helpful for you to migrate from Java to C#
- Go through some basic chapters of the following books
- C# Yellow Book (free online book)
- See online discussion on book recommendations on teaching C# programming to high school students
- Go through exercises and materials within the course on introduction to programming at Pex for Fun.
- =================================================================================
- Below are advanced; you are suggested to go through them only when you master introduction to C# programming well
- Part 3: Learning writing unit tests and parameterized unit tests with Microsoft Research Pex
- Download and install Microsoft Research Pex (you need Microsoft Visual Studio 2008 or 2010 Professional/Premium/Ultimate Edition to install Pex; note that free Visual Studio Express Edition doesn't work with Pex)
- Credit Card Input Validation
- Credit Card Number Generation with Pex
- Follow the materials linked from the Getting Started with Pex web to learn it (it may be helpful to browse the FAQs and their blog)
- Ask questions to mentors or at their Forums
- Part 4: Applying Pex on open source projects by converting manually written conventional unit tests for open source projects to parameterized unit tests, and writing additional new paramterized unit tests to achieve new code coverage.
- Here you can find a list of open source projects in C#, some of which can have conventional unit tests. The list of projects used by CSC 712 students definitely have conventional unit tests.
- (Optional: not a focus here but helpful if you want to learn more on application development): Developing and testing C# applications of the high school student's interests with Visual Studio and Pex
- Example applications: facebook applications, game applications, iphone applications, web applications, bioinformatics applications, ...
- Part 3: Learning writing unit tests and parameterized unit tests with Microsoft Research Pex
Discussion
- http://edlab.tc.columbia.edu/index.php?q=node/5907
- http://blogs.msdn.com/b/alfredth/archive/2012/03/16/pex4fun-an-online-lab-for-apcs.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ComputerScienceTeacher+%28Computer+Science+Teacher+-+Thoughts+and+Information+from+Alfred+Thompson%29
- http://wp7lab.com/news/pex4fun-brings-coding-wp7/
- http://wmpoweruser.com/pex4fun-from-microsoft-research-allows-you-to-code-in-wp7/
- http://research.microsoft.com/apps/video/default.aspx?id=150049
- http://blog.acm.org/archives/csta/2010/12/learn_c_program.html
- http://mctalex.blogspot.com/2012/02/coding-duel-online.html
- http://www.howtogeek.com/89165/like-programming-how-about-a-coding-duel/
- http://www.base-sixteen.org/resource.jsp?id=agdjc2U0azEychALEghSZXNvdXJjZRjhtg0M
- http://programmers.stackexchange.com/questions/756/where-can-i-find-programming-puzzles-and-challenges
- http://rlink.tumblr.com/post/1127351264/pex-for-fun-from-microsoft-research
- http://indikatech.wordpress.com/2012/04/20/coding-duel-for-fun-with-pex/
- http://research.microsoft.com/en-us/um/redmond/events/ss2011/slides/thursday/wolfram_schulte.pdf
- http://www.mrmubi.com/2010/09/microsoft-research-labs-pex-for-fun.html
- http://www.srtsolutions.com/A-fun-brain-exercise-PexForFun
- http://research.microsoft.com/en-us/news/features/pdc10-112210.aspx
- http://www.caelumobjects.com/2011/01/13/evolving-software-and-improving-algorithms/
- http://social.msdn.microsoft.com/Forums/en/pex/thread/47e69fa8-fb33-4b67-966f-b4ad82a241dd
- http://interactiveasp.net/blogs/natesstuff/archive/2011/06/28/code-duel-to-learn-more-about-pex-and-code-contracts.aspx
- http://channel9.msdn.com/Blogs/Peli/Coding-Duels-at-pexforfuncom
- http://channel9.msdn.com/Tags/pex
- http://groups.diigo.com/group/acse_discussion/content/tag/fun