changeset 489:a95af5a59990

Exercises online
author Adam Chlipala <adam@chlipala.net>
date Tue, 08 Jan 2013 15:48:32 -0500
parents 31258618ef73
children c8a3cb24bae9
files Makefile src/Intro.v staging/ex/index.html staging/index.html
diffstat 4 files changed, 27 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Tue Jan 08 14:38:56 2013 -0500
+++ b/Makefile	Tue Jan 08 15:48:32 2013 -0500
@@ -52,9 +52,10 @@
 cpdt.tgz:
 	hg archive -t tgz $@
 
-install: cpdt.tgz latex/cpdt.pdf html
+install: cpdt.tgz latex/cpdt.pdf latex/exercises.pdf html
 	cp cpdt.tgz staging/
 	cp latex/cpdt.pdf staging/
+	cp latex/exercises.pdf staging/ex/
 	cp -R html staging/
 	rsync -az --exclude '*~' staging/* chlipala.net:sites/chlipala/adam/cpdt/
 
--- a/src/Intro.v	Tue Jan 08 14:38:56 2013 -0500
+++ b/src/Intro.v	Tue Jan 08 15:48:32 2013 -0500
@@ -173,8 +173,7 @@
 
 Coq is a very complex system, with many different commands driven more by pragmatic concerns than by any overarching aesthetic principle.  When I use some construct for the first time, I try to give a one-sentence intuition for what it accomplishes, but I leave the details to the Coq reference manual%~\cite{CoqManual}%.  I expect that readers interested in complete understanding will be consulting that manual frequently; in that sense, this book is not meant to be completely standalone.  I often use constructs in code snippets without first introducing them at all, but explanations should always follow in the prose paragraphs immediately after the offending snippets.
 
-Previous versions of the book included some suggested exercises at the ends of chapters.  Since then, I have decided to remove the exercises and focus on the main book exposition.  Especially in the domain of interactive theorem proving, keeping exercises at the proper difficulty level is a lot of work, I have learned!  My advice to readers is to learn to use Coq by getting started applying it in their own real projects, rather than focusing on artificial exercises.
-*)
+Previous versions of the book included some suggested exercises at the ends of chapters.  Since then, I have decided to remove the exercises and focus on the main book exposition.  A database of exercises proposed by various readers of the book is #<a href="http://adam.chlipala.net/cpdt/ex/">#available on the Web#</a>#%\footnote{\url{http://adam.chlipala.net/cpdt/ex/}}%.  I do want to suggest, though, that the best way to learn Coq is to get started applying it in a real project, rather than focusing on artificial exercises. *)
 
 (** ** On the Tactic Library *)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/staging/ex/index.html	Tue Jan 08 15:48:32 2013 -0500
@@ -0,0 +1,20 @@
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="/style.css">
+<title>Certified Programming with Dependent Types Exercises</title>
+</head><body>
+<h1><a href="..">Certified Programming with Dependent Types</a> Exercises</h1>
+
+<div class="summary">
+<p>Here lies an attempt to crowdsource the production of exercises for CPDT.</p>
+</div>
+
+<div class="project">
+<h2>Suggested Exercises</h2>
+<ul>
+<li> <a href="exercises.pdf">Snapshot of exercises that were included in CPDT when I decided to stop maintaining exercises</a> (<a href="http://adam.chlipala.net/">Adam Chlipala</a>)</li>
+<li> <a href="http://www.cis.upenn.edu/~bcpierce/courses/670Fall12/">Homeworks from CIS 670 at Penn in Fall 2012</a> (<a href="http://www.cis.upenn.edu/~bcpierce/">Benjamin Pierce</a> and students in the class)</li>
+</ul>
+</div>
+
+</body></html>
--- a/staging/index.html	Tue Jan 08 14:38:56 2013 -0500
+++ b/staging/index.html	Tue Jan 08 15:48:32 2013 -0500
@@ -29,6 +29,10 @@
 </div>
 
 <div class="project">
+<h2><a href="ex/">Online Collection of Exercises for the Book</a></h2>
+</div>
+
+<div class="project">
 <h2>Used by:</h2>
 <ul>
 <li>CIS 670 at Penn <a href="http://www.cis.upenn.edu/~bcpierce/courses/670Fall12/">(Fall 2012)</a></li>