CSC 200 Undergraduate Problem Seminar: Assignments
First, internalize the problem...
The assignments will be posted here after the day's class,
along with the due date.
Assignments are due at the beginning of class on the due date.
In general, no credit will be allowed for for late assignments.
Turn what you have in in for partial credit.
For any assignment, I expect a well organized
report-style writeup that describes in detail what you did, why you did it,
and what the results were. This includes negative results.
Scratch work and computer code, if requested should be appended to the main
writeup with appropriate pointers.
Attribute ANY work that is not your own, including software off the
web, text cribbed from other sources, etc.
You are encouraged to look for resources, but not to the extent that
it negates the point of the assignment.
This is sometimes a fine line, especially in programming assignments.
I will try to be specific as to what I expect you to write
as a minimum. If in doubt, ask.
In any case, use of UN-attributed material is plagiarism, and a violation
of the University's academic honesty policy.
Plagiarism is taken VERY seriously in this department. DON'T DO IT.
If in doubt, reference.
Specifically, text taken from web pages, even a single sentence,
is plagiarism. Text paraphrased from web pages is plagiarism.
Sentences from web pages cut up into phrases and re-arranged are
If you want to avoid possible problems, my suggestion is
never write while looking at text. Generate everything from your
own understanding of the subject.
Use of unattributed text in any written assignment will result in
zero credit for that assignment.
Text that comes from an outside source should appear in quotes.
Too much use of quoted material will tend to reduce your credit
for an assignment, as the point of written assignments is to
convey your understanding of a subject.
In general, you should consider written assignments for this course
to be public documents - just as published research papers are public
documents. As such I may place them in a forum where they may be
scrutinized by your colleagues for accuracy, clarity, and for
You are encouraged to discuss general techniques and specific approaches
to general problems with your fellow students, or anyone else.
Unless specifically directed in an assignment, however, you are not to
share code you have written, or your written solutions to specific
Wednesday, January 16, 2013
- Class activity:
Danger, Will Robinson! Danger!
- Class activity: Introductory material, Survey forms, Tours.
- Assignment 1:
Bring to class an item that is dangerous, but not intended
as a weapon or destructive device (not permitted on campus in any case).
Also nothing illegal. Prepare a writeup describing the dangerous potential
of your item, and be ready to present it to the class.
I'm looking for thoughtful observation here more than snarky cleverness.
If I get pens (or pencils) that are mightier than the sword, and
brains of the most dangerous game,
I will be disappointed.
Due: Wednesday, January 23, 2013.
- Assignment 2: First impossible project:
With your team-mate, Design and build a simple electronic circuit
that flashes an LED approximately once per second.
Bring your device to class to demo it.
Also a writeup referencing ALL your sources of information, including
pointers you received from other students.
Breadboards, wire, and some electronic components are available in the
undergraduate lab in Hylan 301. Also a few tools.
A flashing circuit can certainly be built from what is there.
But you can use anything you can get your hands on.
You are allowed (in fact expected and encouraged) to look for information
and design ideas on or off the web, and even pass ideas around to your
However, you or your team must build your device with your own hands.
An app for your iphone does not count for this assignment
Note that the exact components specified some web design may not
be present in the lab, so you will have to understand enough about what
is going on to make reasonable substitutions.
Due: Wednesday, January 23, 2013.
Monday, January 21, 2013.
- Class activity: MLK day of service
Wednesday, January 23, 2013.
- Class activity: Observation of multiple flashing circuits.
- Class activity: Presentation of danger.
- Assignment: Construct a sturdy, physical dodecahedron at least
1 inch between parallel faces (bigger is fine).
Structure should be strong enough to
support a five pound load in any orientation. A single-layer paper
structure for which templates can be found and printed on the internet
will probably not suffice (I expect a little more effort than that).
Artifacts that somehow semantically satisfy my attempt to specify the
desired degree of strength, but have flimsy aspects (e.g. just
a ball with paper extensions) are counter to the spirit of the
assignment. This is not a class about legalisms.
Shape should be accurate to 1/10 inch.
Any material that does the job is OK. (Again, I am not interested in
semantic tricks like virtual materials, or a bottle of water that
could be argued to contain any shape...)
You may work by yourself, or in teams of 2.
The solids will be tested in class.
Due: Monday, January 28, 2013.
Monday, January 28, 2013
- Class activity: Testing of Euclidean solids.
- Class activity: Intro discussion of Supersonic driver (SSD) project.
- Assignment: Write a short program in C that counts to 1 trillion
(that is, 10^12), by ones. By definition, this means that your program
must go through at least 10^12 states.
There is one very small subtlety here, but
your program should need to be be no more than a few lines long.
Run and time your program.
On a gigahertz processor, you should be able to run such a program in
under an hour or so (you can check progress by writing a version that
prints something every billion counts or so). If you are not running
fast enough, go back and write something that will run faster.
Now the fun part. Get hold of the .o file compiled version of your code.
Map and count the bits that occur in non-zero bytes.
(The reason for the non-zero byte condition is that .o files are generally
padded with non-functional 0s to fill out some integral block condition
Figure out a way to flip
an arbitrarily selected bit in the non-zero-byte portion of the .o file.
Now experiment with flipping a single bit, and then try to
re-link and re-run the program. Try this for every bit in your program.
What percent of the time does the program
A. Fail to link successfully.
B. Crash or terminate prematurely in the first five seconds of running.
C. Run for five seconds or more with no obvious problems.
If the program fails to link in all cases find the parity check that
the linker is using to identify a corrupt file and work around it.
You might need to be a bit careful on a Windows system (though I hope not).
Linux has been fairly well projected for a long time against programs
getting out of their space, but early Windows systems would let
you jump or write to
vital system areas by mucking with a binary, and crash the OS.
I really hope this is no longer true, but am basically a Windows
ignoramus, and don't know for sure.
Now the really fun part. Can you think of a way to write a program
(doing the same counting) that is less susceptible to single bit flips?
(other than increasing the length of the program with a lot of garbage code
that is never executed). The idea is, given a certain probability that
a stored bit will be corrupted over time, is there a way to make a stored
program less susceptible to such damage. Increasing the length with
no-ops doesn't help in this case, because the original program is
still there and has the same probability of being whacked somewhere.
Turn in a writeup of your results, including a printout of your program
(Just so I can check that it actually counts to a trillion. Don't
worry. I almost never will want to look a source code).
Due: Wednesday, January 30, 2013.
Wednesday, January 30, 2013
- Class activity: Discussion of program damage results
- Class activity: Accidental discussion of interstellar civilization
- Assignment: Consider a simple circuit composed of the 25uF
capacitor brought to class in series with a circular coil
1 cm in diameter made of 10 turns of #20 copper wire wound so that
the thickness and length are negligible.
Suppose that there is an initial potential of 2000V on the capacitor,
and a switch is closed to complete the circuit at time t = 0;
A. Model the current in the circuit as a function of time to sufficient
accuracy to determine the following to 10% accuracy, assuming
the coil does not burn up.
B. Determine whether the coil is likely to melt due to resistive heating.
If it does, determine the approximate time of failure.
Note that if the temperature increase modeled using room temperature
conductivity of copper exceeds a few hundred degrees Celcius, you
would need to incorporate the decreasing conductivity with temperature
into the model in order to get reasonably accurate results.
This would probably involve a numerical simulation, which counts as
above and beyond the call of duty for this assignment, but feel free
if you want to.
- The initial rate of current increase, dI/dt in the circuit.
- The peak current in the circuit (in amperes).
- The time t1 (after the switch is closed) at which the peak current
occurs (in seconds, milliseconds, microseconds etc. as appropriate).
- The time t2 at which the first 0 crossing of the current occurs
(if such a point exists).
- The ratio of the first current peak to the second current peak
(if there is oscillation).
- The time constant tc associated with the asymptotic exponential
C. Plot the behavior of the current as a function of time to aid
in understanding the circuit behavior.
Note: You will need to calculate the inductance and resistance of
your coil. Ignore inductance and resistance of the capacitor
and the leads. You will probably need to do some research on the
behavior of simple series RCL circuits.
You will need information on the resistance of #20 copper wire,
its dimensions, the specific heat, density, melting point etc.
of copper, and quite likely other physical constants.
You will need formulas for the inductance of your coil
(these can be looked up, I don't expect you to do those integrals).
You can assume that the wire is insulated sufficiently well that
there is no arcing or shorting across the coil.
You can assume the coil is sufficiently well constructed that
it will not self-destruct due to magnetic forces.
If you are feeling ambitious, you could compute the approximate
magnitude and direction of these forces and decide if the copper
wire has sufficient strength to withstand them, or if external
support of the coil would be needed.
Due: Monday, February 4, 2013.
Monday, February 4, 2013
- Class activity: Discussion of LRC circuit problem.
- Assignment: Use numerical optimization to solve the brachistochrone
problem for the case of a sliding mass, initially at rest,
moving down one meter (e.g. in y) and
across one meter (e.g. in x) (in earth-normal gravity).
Splitting x into 100 or so segments and doing piecewise linear
integration of the motion along each segment to compute the sliding
time will probably suffice for this problem, as the solution is
a smooth curve. The trick is the search efficiently through the
space of piecewise linear curves for the best.
Graph your solution curve, and compare it to the theoretically
optimal cycloid. Also compare your time to the theoretical minimum.
Writeup as usual.
Due: Monday, February 11 2013.
Wednesday, February 6, 2013
- Class activity: Introductory discussion of SSMD construction.
- Assignment: For Monday Feb. 11, write a brief memo outlining ideas
for organizing the SSMD construction effort into components
that can be addressed in parallel by teams of 4-5 people.
Particular attention should be paid to the need for ultimate
integration of components, and how to make sure that
results fit cleanly together without the need for extensive
retrofitting, reconstruction, or redesign.
Short intro to coil drivers. This is fairly low-level, and clearly
written by hobbyists rather than pros at this
(who are mostly employed by military contractors and keep their
mouths shut), but it provides a reasonable outline of some of the
general issues involved. Note that we are planning what they refer to
as an air-core inductive driver, rather than the
conceptually simpler ferromagnet approach.
The latter can't easily produce fields strong enough to go supersonic
in a desktop space because of saturation of the iron cores.
Monday, February 11, 2013
- Class Activity: Discussion of project breakdown and team organization.
- Assignment: Discussed in class (propose ideas for determining the
speed of a payload and producing a signal that
coincides with the predicted arrival of the the payload at
a particular point)
Wednesday, February 13, 2013
- Class activity: Teams. Initial discussions.
- Class activity: Critique of initial artifact design ideas.
- Assignment: Due next Monday (Feb 18 2013)
Get together with your team and prepare an initial summary of the
primary questions and issues you need to address,
including interfaces with other teams.
Prepare a (single) document describing these issues, and be prepared to
present the outcome of your initial discussion to the class
Monday, February 18, 2013
- Class activity: Presentation and discussion of team issues
Wednesday, February 20, 2013
- Class activity: Presentation and discussion of team issues cont.
- Assignment: Each team should prepare a black-box description of their
module, with physical and electrical interfaces to the other modules
Monday, February 25, 2013
- Class activity: Presentation and discussion of black-box modules
- Meeting of safety, integration, and shop groups.
- Assignment: For next Monday, Each team should produce a prototype
design for their module at the component level, and a list of
materials/components needed. Where possible detailed electronic
specifications should be given including voltage and power ratings.
The same is true for mechanical components. Where possible, specify
(For some components, this is not yet possible, specifically, we
do not yet know the exact form factor and inductance of the coils
we will be using.
Assume the projectile will be made from 3/8 inch round aluminum rod.
When values are not determinable yet, specify what information
is needed to determine them.
Produce as detailed a diagrame as possible of your module.
Back to CSC 200 main page