Weeks 4 and 5 Fall 2011
and Miniproject Specifications.
20sep11 with census questions.  Revised 26sep11

\begin{document}
\maketitle

\section{Commentary}
Both weeks were one class session short for various reasons. So I will
review them here together, and propose a plan for a \textbf{miniproject} you should
complete in preparation for drafting a proposal for your major project.
The miniproject leaves you some choice, but is designed to optimise my
being able to advise you on your major project. The miniproject consist
in three items:
\begin{itemize}
\item Understanding the theory (mathematics) in the pocket notes.
\item Exploration, experimentation, and documentation, of same or related packages.
\item Learning a number of tools you'll need for this.
\end{itemize}
Note that to reduce name confusion (Haddock's Eyes) I'm referring to the
"BASIC Pocket Graphics Programs" by just "pocket notes", because the file
name is pocket.pdf.

\section{VPython}
All of the class is expected to download VPython (or, if that doesn't work,
use the computers in the lab) and explore the examples. All of you should make
a list of 4 or 5  interesting VPython examples,
and write a short review of two or
three. To the extent that you can read Python, you should look at the code of
those reported on as well. Programmers should modify and experiment with
at least one VPython example. Adanced programmers will please answer questions
posted on qa.math by your classmates.

Question 1.
Did you install VPython on your computer successfully? How many examples did youtry out? Which was your favorite? Did you look at its code? Did you modify its
code and see your changes?

\section{basiCglut version of the Pocket Programs}
The pocket notes were originally written around using BASIC on Apples in
the eighties. When MA198 switched entirely to C and OpenGL, the notes were
edited with reference to C-codes. The idea was to introduce OpenGL at the
same time as preparation the 3D OpenGL work leading to writing CAVE applications.
They can still serve this function, if you're learning Open GL. But you have
a choice of languages.

Question 2
Have you downloaded pocket.pdf to your computer? How far did you get in reading the mathematical content? What was the first mathematical topic you did not
understand? Which topics would like to see discussed/explained in class?

\subsection{The mvc98 C-compiler Package}
If you are learning C/C++ as a "second language", you can benefit from these
notes as follows. If you have and know how to use a C-compiler on your
computer, \textbf{and} you have OpenGL installed in your IDE,
you can skip the next step. But I may not be able to bail you out
if your get stuck with your compiler. If you do not, or just want to make
sure of success, \textbf{and} you have a PC, then you should
\begin{itemize}
to your home directory if you're using Windows 7.
\item Use the unzip.exe to unzip winaid.zip to avoid the double directory
"feature" of windows. Nothing in this package is installed into your registry.
\item There are four folders in this package. The one that concerns us here
is called mvc98 and is an ancient C-compiler that works well with the pocket
programs, but probably not with more recent programs.
\item To be continued, once the class has mvc98 onboard for a class tutorial.
\end{itemize}

Note that  winaid.zip,  unzip.exe are here.
The point of using mvc98 is that it has OpenGL already built into into its
libraries so you don't have to prepare your own C-compiler for OpenGL.

Question 3.
Can you compile C/OpenGL programs on your computer? Did you download mvc98?
Could you run allerton.exe? Could you recompile allerton.exe?

\subsection{The mac compiler}
Unhappily, the mac no longer comes with a compiler fully installed. The
macs in the lab do, and you could work there. But if you want work on our
own mac, we'll have to do something special.

\section{Subversion Repository}
In order for us to proceed  in this class, we will have to bit the bullet
and take up Subversion. That is the tutorial on M5 and possibly W5. (There
is no class on F5). One of the advantages of SVN is that there is no
duplication of methods of communication necessary. You write and I respond
right the same filespace both of us are working in. No email, no webpages,
no qa.math, or paper copies to be forgotten to hand in. (This is \textbf{ does
not} supplant your handwritten Journals, however.

Question 4.
Fill in this question now.

\section{LaTeX with texWins and texPad}
Since the reports for the miniproject have to be in some format, and I
won't accept Word documents, you could start learning some LaTeX, since
that will be required for the final project anyway. But you may submit
reports (in your svn-repository) in plain ascii for now, because that is
easily converted to LaTeX. \txtbf{Please}, no .doc, .docx, .rtf etc
files. Only .txt or .tex/.pdf.

Question 5.
Have you tried texWins? Were you able to write anything to texWins and download
a .pdf of your document to your computer?

Question 6.
Does your browser show mathematical symbols correctly?

\section{Four Tracks for Your Miniproject}
A group of novice programmers is learning Python. But their miniproject
will be a report on the VPython examples.
A second group of advanced programmers is learning Aszgard and Syzygy.
The subject of their miniproject is be individually negotiated.
There can be 2-3 additional tracks. You need to commit yourself to one
of the tracks for your miniproject by W5.
\subsection{Learning to Program, using Python}
This group of four has met outside of class T4. They are
expected to understand the math in the pocket notes, like everybody
else, but need only follow along any discussions of the programs if they
wish. Your miniproject will concentrate on exposition
and documentation, and not so much on programming just yet.
\subsection{Aszgard Programmers}
The four people who are taking up Aszgard now, need only to know what is
in the pocket notes, and be willing (and able) to help others. The VPython
examples can be useful for your prototyping RTICAs for the Cube. For instance,
pick a VPython example (check with me) and put it into the Cube by F6.
(That's in 2 weeks!)
\subsection{Pocket Programs in C Group}
Assignment is to complete the exercises in the pocket notes using C/OpenGL as
directed for exploration.
\subsection{Pocket Programs in Python}
Write (some) of the programs in the pocket notes in minimal Python, either
with Tkinter or Pygame modules. Put these, with documentation, into svn.
\subsubsection{Stan Blank's Textbook}
For those of you not completely at home in Python, there are the very good
and slow notes by Dr. Blank. These have been used by students to progress
very rapidly, mainly by skimming and only doing some of the exercises.
However, there is a problem with the version of Python this text assumes,
and an adequate substitution with a different Python needs to be made.
There is something more to be said privately about this sub-track.
\section{My Miniproject is .... }
Now that you have read through this document, I want you to decide
what your miniproject will be. Don't make it difficult for yourself.
This is a practice for proposing your major project for the course.
\texbf{Do not procrastinate}, I will have some time this coming weekend
to go through the census. So please consider this a "have-to" and
do it by Friday.

Question 7.
Describe your plan for your miniproject in a few sentences. Which track are
you going to take? You may mix and match in a reasonable way.

\end{document}