Lab Activities
Last modified at 8:51 AM on 1/19/02.
IMPORTANT
- It is against CS Department policy for any student to
use another student's account (even with his or her permission).
- Food and drink (including water) are not allowed near the
computers in the labs. Do NOT eat or drink while sitting at
a computer.
There will be weekly programming assignments. Your assignment is
due fifteen (15) minutes before your next lab period.
The main purpose of the programming projects for this class is to help you gain a mastery of the material, not to certify that you understand it. Assessment of your understanding will be accomplished primarily through exams.
The first portion of most lab sessions will be spent discussing the solutions
to the programming project that was due at the beginning of that lab. I will generally select
one or more student solutions for class discussion during the lab session. You
should be prepared to discuss your solution in case it is selected.
There are several reasons for doing things this way:
- Programming is a design activity. There is usually more than one way to solve a problem.
- You will see different ways to solve the problem and participate in the discussion of why some are better than others.
- You can learn from the mistakes of others so that you don't make the same mistake at another time.
- You can help others (including me!) learn more.
- It is good practice for the "real world."
Most good software organizations use some sort of code inspection to ensure that programs are correct and that there is a consistent programming style within the organization. To quote one of my friends from industry...
We have various flavors of inspection in different groups, and in QA
we do quite rigorous inspections and have collected some data on how
cost-effective it is. It is also a GREAT training tool, allowing jr.
staff to see how others do things. Sometimes it is almost as much a
tutorial as inspection, but always results in code that is
maintainable, structured, and well documented. PLEASE convey to your
students that a large part of their work (more than they could
possibly suspect) will involve maintaining, enhancing, or interfacing
with existing code, and the quality of that code will probably be the
bane of their existence.
During your lab session, I will call on students at random to discuss the
work they have done. You should at least be prepared to:
- describe in detail any code that you have used in your work, whether it was written by you or by somebody else (including code handed out by the instructor!),
- participate in the discussion of code being presented by another student, and
- help us all come up with a good solution to the problem at hand.
Some comments:
- I encourage you to work with other students to solve the problems, but
each student must submit his/her own work.
- Learning new things is hard work. You have to expend some effort.
- The lab discussions are not the test. They are a way of studying
for the test.
- Help your fellow students when we are discussing their programs. The
idea here is to work together to help each other learn the material.
- Accept the help of your fellow students when you are presenting your
program.
- Review the work again after the lab discussion. You are responsible for
knowing things that have previously been covered, either in this class or in
the prerequisite classes.