\documentstyle[twocolumn]{article}
\nofiles
\input{use-full-page}

\begin{document}

\title{Programming Languages 1:\\
Course Policies and Procedures}
\author{Gary T. Leavens \\
Department of Computer Science, Iowa State University}
\maketitle

\begin{abstract}
There is no curve grading, and tests are weighted equally in
the final grade with homeworks.
You are urged to talk with other students about the class material,
but exchanges of code or written answers is considered cheating.
Copying material from publications without proper citation is
plagiarism.
\end{abstract}

\section{You Must be Registered}

To attend this class, you must be registered for it.

If you wish to listen in on the class, you must register as an auditor.

\section{Staff}

Assistant Professor Gary Leavens (Ph.D., MIT, 1989) is the instructor,
and Arun Raghavan
(B.S. Birla Institute of Technology and Science, Pilani, 1998)
is the teaching assistant.
Table~\ref{table-staff} tells how to reach us.
\begin{table*}
\begin{center}
\begin{tabular}{lllll}
Name 		& Office & E-mail	& Phone		& Office Hours \\
\hline
Gary Leavens	& 229 Atanasoff & leavens@cs.iastate.edu & 294-1580 & M 1, F 11\\
Arun Raghavan   & B16 Atanasoff & adr@cs.iastate.edu     & 294-4377 & MWF 3
\end{tabular}
\end{center}
\caption{Information on the Course Staff}
\label{table-staff}
\end{table*}

Our TA does not really have a phone; the number given is for the department,
which can take a message.

\subsection{Office Hours}

The purpose of office hours (see above) is to state the times when you
are guaranteed to be able to reach me. % us.
Please, feel free to call or visit at other times as well,
although there is no guarantee at such other times.
(I'm also often in evenings and some weekends.)

\subsection{Other Ways to Reach Us}

Questions may also be asked (and answered) by electronic mail.
If you have a simple technical question that is not urgent,
please don't hesitate to send electronic mail.
Discussions related to the class, or even less urgent technical questions
can take place on our usenet newsgroup:
{\tt isu.coms.541}.
You can send mail to the whole staff at the address
{\tt cs541s@cs.iastate.edu}.

My telephone (294-1580) has an answering machine attached,
so leave a message if necessary.
Short questions can often be handled over the phone faster than by email.

\section{Instruction}

\subsection{Meetings}

The ``lecture'' meeting is from 12:40 PM to 2 PM
on Tuesdays and Thursdays
in 214 Atanasoff Hall.

\subsection{Discussion Sections}

There is a discussion section Wednesdays at 5 PM
in 3126 Coover.
You are expected to be able to attend these.
We will use these to discuss any questions you may have,
supplement the lecture meetings, makeup lost lectures,
discuss details of running various programming
languages, discuss grading of homework, give tests, and discuss grading of
tests.

\section{Texts}

The required text is
{\em Haskell: The Craft of Functional Programming (second edition)\/}
by Simon Thompson
(Addison-Wesley Longman, 1999).

The following texts are also recommended.
\emph{Discovering Smalltalk}
by Wilf LaLonde
(Benjamin Cummings, 1994).
\emph{Component Software: Beyond Object-Oriented Programming}
by Clemens Szyperski</A>
(Addison-Wesley, 1998).
{\em Design Patterns: Elements of Reusable Object-Oriented Software\/}
by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
(Addison-Wesley, 1995).

We will also pass out some readings.
Several related books are on reserve at the Parks Library.

\section{Grading}

\subsection{No Curve Grading}

Your grade is independent of anyone else's grade in this class;
that is, we do not grade on a curve.  Everyone can get an ``A'' in this class.
Our purpose in grading is to uphold a standard of quality
and to give you feedback, it is not to rank students.

Instead of using curve grading as a final defense against
problems that are too hard,  I use the following policy.
If a problem on the homework on a test is so hard that most students
do not ``get it'', then I will eliminate it from the test or homework grading.
If this problem was appropriate, then I will teach how to solve problems
like it, and give a similar problem on another test or homework.
If it was not appropriate, then we will ignore it.
If you detect such a problem on a homework, let me know about it
as soon as possible, as it will save us all a lot of work.

\subsection{Homeworks and tests}

Much of the grading in this class will be subjective.
``A'' work is excellent work, showing careful thought and a thorough
understanding of the material, especially with creativity.
``B'' work shows an adequate understanding of the material.

Although we will not always make fine distinctions in points
the nominal standard for ``A'' work will be 90\%,
normal ``B'' work will be 75\%, normal ``B-'' will be 70\%.

\subsection{Evaluation of Work}

Mathematical work will be evaluated much in
the same way as programs, but with perhaps a bit more emphasis on
clarity.

\subsubsection{Evaluation of Oral Presentations}

Oral presentations will be evaluated using much the same criteria
as for essays.  However, we will base most of your grade on what you say,
rather than how well you say it.

\subsubsection{Evaluation of Group Work}

Some of the work in this class will take place in groups of several students.
On each group homework or project,
each person in the group gets the same grade.

\subsection{Extra Credit}

Some extra credit problems will be given in homeworks,
you may also do others that interest you.
Beware that one reason for having extra credit problems is to give me a
place to put interesting problems that are of unknown difficulty.
Sometimes these turn out to be quite hard.

If you do problems or other work (e.g., reading additional articles)
on your own, please let us know.  We like to hear about such things.
Past experience is that extra credit work helps you do better
in the course and is fun to boot!

We will take extra credit work into consideration subjectively
during the assignment of final grades.
(For example, if you are on the borderline
between grades by other indications.)

\subsection{Final Grades}

You will receive one grade for each homework and test
(including the final exam).
An estimate of your final grade will be made by taking a weighted
average of these grades, with the total weight on homeworks
being the same as the total weight of the tests.
We will then take extra credit and other factors into consideration
to make small adjustments.

\section{Group Problems}

Some problems in the class may be worked on in groups.
The following discusses the procedures that apply to such groups.

The reason for assigning work to groups is that you learn more effectively
when you participate in a group discussion.  According to material
by Edgar Dale, as quoted by Dr. Richard M. Felder, people tend to remember
about 50\% of what they hear and see, but 70\% of what they say,
and 90\% of what they both say and do.  As any teacher can
tell you, you really learn something when you have to explain and defend
it to someone else!

Such cooperative learning is not just students sitting in a terminal room
talking to each other, or group projects with only a few students doing
the work.  You will all depend on each other, but yet will be individually
accountable for your own learning (on tests).  You will have to develop
your interpersonal skills.  These skills are increasingly important in
the business world.

Furthermore, groups promote active learning, and better questions in class.

To promote cooperative learning, we will form groups
and assign some homework as group work.
For problems assigned as group homework, the following policies apply.

\subsection{Problems, Changing Membership}

Once a group is formed, it should not change members during the semester.
That is, the members should commit to working together for the rest of
the semester.

If there is a problem in the group, you should come (preferably as a group)
to talk to me (Gary).  We will try to straighten it out.

\subsection{Group Leadership}

One group member will be designated the leader for each assignment.
The leader will be responsible for:
\begin{itemize}
\item
coordinating the work, and

\item
certifying that everyone in the group understands the problem
and its solution before the work is handed in.
\end{itemize}

Once you have been a group leader, you may not be a group leader again
until every other student in your group has been a group leader.
(If the leader does not show up to a meeting, some one else may serve;
but this should then be brought to the attention of the staff.)

You group may have other jobs that rotate as well
such as a recorder, etc.  Be sure these jobs rotate.

\subsection{Group Work Process}

We require {\em each} student individually write down a plan for
solving the problem (a start of a solution, a partial solution,
where the problem is too difficult or not understood
--- something to show that they have thought about the problem
and know how to go about working on the problem)
for {\em each\/} problem.
When the group meets, the members should compare and discuss these plans,
help those who are stuck, decide on a (composite) plan, implement the plan,
and check the work.  You can split up the work in implementing the plan,
and in checking the work, but you need to be sure that everyone understands
what went on, and what was discovered in carrying out the plan.
It it important that each student start each problem, because on a test
you will all have to work the problems on your own, and if you don't know
how to start the problems, then you will find it difficult to get started
on the test.  This also ensures that all the group members are familiar with
the problems and have some ideas for the solution before a group meeting.

What the group should {\em not\/} do is split up problems or problem parts
before meeting.
If you do that, you won't see how each problem works and how to start it.
This is a recipe for disaster on tests, which are 1/2 of your grade.
The point is for each student to learn how to do the problems more effectively,
not to do less work (although that should also happen in groups).

As a check that each student is starting each of the problems,
until further notice the group must turn in a set of individual plans
(or partial plans with a description of what difficulty has them being
stuck) for each group problem, one from each member of the group.
Each individual solution should be signed at the top right by the student.
This signature certifies that the handwritten solution is the student's work,
done before the group meeting.  These will not be graded, but will be used to
check that your group is complying with this policy.

To improve the group process, on each assignment the group must describe:
\begin{itemize}
\item
what the group did that went well worked,

\item
what aspect of the group needs improvement, and

\item
what (if anything) will be done differently on the next assignment.
\end{itemize}
This should be an honest assessment, and is intended to get the group
talking about what is happening, improve the process, and to keep us
informed of how your group is working.

\subsection{Certifying credit for Group Work}

On group homework, the leader must write "Leader:" followed by his or her name,
and then the name of each {\em participating\/} group member.
If a student's name appears on the solution set, it certifies that he or she
has participated in the completion of some of the problems and understands
{\em all\/} the solutions.
A student may also be certified as participating in some but not all
problems by a suitable note.
The leader should explicitly note if he or she is not certified.

If a student (including the leader)
is certified as having participated and understood,
but that not the case, then both the student
in question and the group leader will be considered to have cheated, and will
be dealt with accordingly.  A group member who does not participate will
receive a zero (0) for each problem in the set of problems in which he or she
did not participate.

\subsection{Bonus for Tests}

Each participating group member gets the same grade as the others for a
homework.  Tests are graded individually.  However, if each student in the
group gets above 80\% on a test, then all the group's students
will have their scores raised by 2\% as a bonus.

\subsection{Acknowledgement}

The above material on cooperative learning draws extensively on materials from
"Effective Teaching: A Workshop" by Dr. Richard M. Felder (September 9, 1993,
pages 39, and 68-75).

\section{Cheating}

In working on a group projects (i.e., one in which we told you to work in
a group), copying written work or code between the members of a group
is not cheating.

For work assigned to individuals (or between groups for group work),
the rule of thumb is: never give or use someone else's code
or written answers.
Such exchanges are cheating and not cooperation.

We will take action if we catch you cheating on a test or exchanging
code or written answers.
Read the section on ``academic dishonesty'' in the
{\em Iowa State University Bulletin General Catalog}.

If you honestly believe that certain problems are too much busy work,
then bring it to my attention;
or failing that, only do the part of the problem that you think you need to do
to learn the material and explain that to us.

\section{Cooperation and Citation}

You are encouraged to discuss homework, and other parts of the class
with other students.
However, in discussions outside of assigned group work,
you should distinguish between
helping and hurting yourself and the other student.
In brief, you can help the other student by teaching them,
and you can hurt them by giving them answers that they should have worked
out for themselves.
(Remember, when you're being tested, you won't be able to help each other.)
The same applies to tutoring and help from me. % or a TA.

This most commonly occurs in
giving away a key idea needed to solve the problem.
For example, suppose you have studied a programming problem
for an hour or so, and finally found that the key to the solution
is to use a subroutine {\tt critical}.
Your friend, after working on the problem for 15 minutes, says
``I just can't see how to do this'' and you say
``try using a subroutine called {\tt critical}''.

Although it takes more time, your friend will learn more if you say
something like: ``How are you approaching the problem, what's your plan?''
(knowing that if your friend is not planning, no subroutine will be found).
If your friend hasn't planned, you should let them do it,
if they have trouble planning, tell them to think about problems discussed
in class that were similar, etc.
If, after planning, your friend still hasn't found subroutine {\tt critical},
you should say something more direct like, ``what subroutines do you have?''
or ``how do these subroutines help you get closer to the problem solution?''
or ``can you solve part of the problem?''
The idea is to guide the other person's thinking process.

Perhaps a more common way to fall into the hurtful exchange of giving away
the key idea is when you're talking over a problem that no one knows the answer
to yet.
Once one of you comes up with the key idea, it is tempting to blurt it out,
impressing the others with your brilliance.
If this happens, you should write ``developed in cooperation with $\ldots$''
on your solution.
It would be better for the one who comes up with the key idea
say ``I have it, but now I can't tell you what it is'' and then try to guide
the others to the solution as described above.

If you use reference materials
to solve a problem, please give a citation.
Similarly, if you discuss a solution with another student,
give credit where credit is due by making a note such as
``the following idea was developed jointly with Alyssia P. Hacker,''
or ``the following idea is due to Ben Bittwiddle.''

\input{disclaimer}

\end{document}
