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
plagiarism.
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
unattributed material.
-
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
problems.
Wednesday, January 18, 2012
- Class activity: Introductory material, Survey forms, Tours.
- Class activity: "Danger! Will Robinson, Danger!"
- Assignment: First impossible project. Teams of 2.
1) Design and build a simple electronic circuit that flashes an LED
approximately once per second.
Bring your device to class to demo it on Monday.
Also a writeup referencing ALL your sources of information, INCLUDING
pointers you received from other students.
Breadboards, batteries, and miscellaneous electronic components are
available in the undergraduate lab in Hylan 301. Also a few tools.
But you can use anything you can get your hands on.
Individual components can still be purchased relatively inexpensively
at Radio Shack or at Goldcrest Electronics on Goodman.
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
classmates.
However, you must build your device with your own hands.
An app for your iphone does not count for this assignment
Due: Monday, January 23, 2012.
Monday, January 23, 2012
- Class activity: Presentation of devices; team assignments;
misc. project discussion.
- Assignment: Bring in the oldest electronic device you can find
that still functions for its original purpose. Determine the date
it was constructed. Also, a short writeup describing the device,
how you acquired it, and how you determined its age.
Due Wednesday, January 25, 2012.
Wednesday, January 25, 2012
- Class activity: Presentation of antiques.
- 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.
Find out how many bits long it is. Figure out a way to flip
an arbitrarily selected bit of the .o file.
Now experiment with flipping a single, random 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 against programs getting out of their
space for ever, 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: Monday, January 30, 2010.
Monday, January 30, 2012
- Class activity: Discussion of program damage results
- Class activity: Discussion of potential photo-electric power budget
for millennium device.
- Assignment: Bring in a durable, man-made artifact weighing a
pound or less and having some identifiable function.
Also bring in some (legal under UR regulations) means of attempting
to damage or destroy such artifacts.
Wednesday we will have a smash-fest, so bring safety glasses if
you have them.
Destroyers get a maximum of 30 seconds, or three tries if performing
an "instantaneous" sort of operation, to operate on
any one item.
An artifact will be deemed destroyed if it is either unusable
for its original purpose, separated into major pieces,
or damaged beyond easy recognition.
Due: Wednesday, February 1, 2012
- Next Monday's assignment is to brainstorm individually
about "information treasure" possibilities, and prepare an idea
(or two or three) to present to the class.
Not just the treasure team. What we are
doing is coming up with raw materials for the treasure team
to work with. This is not a competition; more of a wild
idea session. But ideas should have an element of plausibility
(e.g. if your idea is to preserve the 1/1/2012 content of Wikipedia
for the ages, you should have some notion of how it might
be done within the constraints of our millennium artifact)
- Also remember that this Friday, the housing team is scheduled to
take the shop safety course from 12:30-3:30 in Taylor.
If you have a CS meeting conflict and need an excuse, let me know
and I will talk to the prof.
Wednesday, February 1, 2012
- Class activity: Physical damage study
- Assignment: Information treasure brainstorm described above
Due: Monday, February 6
Monday, February 6, 2012
- Class activity: Presentation and discussion of ideas for information
treasure.
- Assignment: For next class, bring in three naturally broken artifacts,
i.e., objects, not deliberately broken by you for this assignment,
that no longer serve their original function.
For each, determine what failed, and how the artifact could have been
made differently so as not to fail in the manner it did.
Writeup as usual.
Due: Wednesday, February 8
Wednesday, February 8, 2012
- Class activity: Finish presentation of ideas for information treasure.
- Class activity: Analysis of broken artifacts.
Lessons Learned
- NO Batteries
- NO Buttons
- NO Flexible electrical connections
- NO CAPES!!!
- Assignment: For next Monday, we want to come up with initial
team proposals and backup plans. So the teams needs to get together.
Like in a coffeehouse or (bar if only it didn't violate local
ordinance) and brainstorm plans. Probably at least twice.
For this stage, the treasure and
electronics teams need to work together since some of the
treasure proposals involve the electronic component.
Treasure/Electronic Group: Come up with Plans A, B, and C
for the information treasure and electronic functionality.
Plan A is the preferred idea, and should be arguably feasible to
build with the resources we have available, but may involve some
iffy components (e.g. can we actually get nano-ark or some
other foundary to engrave text on silicon).
Plan B is the contigency plan should iffy aspects of Plan A fall through.
Plan C is total fallback - something we are pretty sure we
can make (e.g. an LED that flashes whenever it has energy,
and the date of manufacture indelibly engraved on the artifact)
Housing Group: come up with a couple of cool-looking housing
body designs to be made from whatever structural material we
eventually settle on (Aluminum-bronze, Stainless steel, Titanium,
Teflon, ZrN ceramic, carbon nano-composite, whatever...)
Don't worry to much about the material for now.
Do consider how any contents might be protected against shock,
water, oxidation, UV or blue light, possibly other radiation.
(e.g. embed all components in tar or something, protect
transparent surfaces, seal connections...)
Allow for components that might need light to reach them
(e.g. solar cells), possible displays, possible user contacts,
and internal space for electronic and power components that
could amount to several cubic centimeters.
Make a rough prototype of the external shape
of at least one of your designs out of aluminum, just to get an idea
of what it is like to make such things.
I'll put some Al pieces in the locker.
Don't worry too much about mistakes for the moment, except ones that
could cost you a finger.
Internal details can wait as we don't know exactly what will
be needed yet.
Power Group: Spec out the details of at least one power system design.
It should be able to provide at least a couple of milliwatts
for burst operation, which might be only when it was in bright light,
or maybe a few times a day for a few minutes.
Also be able to provide at least a few microwatts for 24 hours
or more should the lights or other intermittant power source
go out. You are probably limited to a max of a few tens of
cubic centimeters volume, and 10-20 square centimeters of
surface area.
Get some initial idea of prices for the components.
Monday, February 13, 2012
- Class Activity: Presentation of group initial designs.
- Assignment: Identify issues in the designs proposed by groups
other than your own, and propose solutions or design
modifications.
e.g., check durability of proposed components, consistence with
design specs, availability of sufficient power, cost,
accessibility of technology, etc.
Write up your suggestions coherently.
Cite references and provide pointers to relevant results.
Goal is to help refine designs, not to prove things won't work.
Wednesday, February 15, 2012
- Class activity: Meet real researchers: Jansen Orfan.
- Class activity: Critique of initial artifact design ideas.
- Assignment: Due next Monday (Feb 21 2012)
- Electronics Group: Put together a prototype circuit of the
sort needed for the harmonica function. Demonstrate something that
at least beeps or buzzes a single note.
- Power Group: Using large capacitor and solar cell and any other needed
components (e.g. diodes? transistors? resistors?)
put together a prototype power system that can drive an LED
flasher of the sort you made for the first assignment.
The flasher should continue to operate for some time on stored
power when the light source is eliminated.
- Container group: Put a window into the prototype aluminum object.
The design should be watertight and proof against reasonable
external forces (being dropped on a hard floor, on the corner
of a table, being stepped on, etc...)
- Treasure Group: Call around and find out what it would cost to have
several pages worth of documents engraved on silicon
(or other durable material such as metal) so it fits on
a couple of square inches or less.
Maybe start with nano-ark if they are still in business.
Monday, February 20, 2012
- Class activity: Presentation and discussion of prototypes
- Assignment: Due next Wednesday (Feb 22 2012)
- Electronics Group: Assemble prototype note generator for at
least two notes.
- Power Group: Research operational parameters of solar cells,
particularly internal leakage and series resistance models.
Find out what is needed to get 5V-6V output in room-ambient
lighting. In particular, why does the 6V cell on the prototype
produce only about 1V in ambient conditions?
(Is it internal leakage, the draw of the voltmeter, or something else?).
Also start looking into durability of solar panels, especially
preventable causes of loss of semi-conductor efficiency
(e.g. UV light?)
- Housing group: Research the durability of Silicone sealants
for the purpose of sealing windows and ports long term against
water infiltration. Consider alternatives such as teflon gaskets
(which would need to be mechanically compressed) and tar-fiber
composites (which are both sticky and self-healing).
Also look into materials for filling the voids in the container
to seal the components agains exposure to oxygen and water
(e.g. petrolatum, waxes, tars, molten teflon??, plastic resins,
etc.) Whatever is used cannot react with copper, solder (tin),
steel, and various platics used to house electronic components.
So it should not, for instance break down to release acids,
probably cannot be too hot when poured in to avoid damaging
components, cannot liquify or separate, or turn to powder over
1000 years in a closed container, etc. etc.
- Treasure Group: Investigate silicon foundary capabilities in UR labs.
See if anyone could etch custom patterns (letter etc.) on
a silicon wafer for us (or any other durable material).
Wednesday, February 22, 2012
- Class activity: Meet real researchers: Michael Scott
- Assignment: Power and electronics groups. Start sourcing components.
Where can you get mil-spec electronics, solar panels, etc.
how do you order them, how much will it cost to get the quantities
we need. We will want extras of course...
Note that mil-spec is not a single high-quality specification,
but a commitment to deliver materials that meet various specifications
supplied by the US military (there are different mil-spec grades).
Its more that you know what you are getting.
Housing, Similarly start sourcing materials (metals, windows, etc.)
Is this speaker idea going to work? we've got to get small
vibrations out of a solid, robust housing. How do we do that
without producing a real weak spot? Grills and deep/overhung
holes have a way of filling up with dirt over time. How thick
and small can we make a (metal) membrane and still produce
sound relatively efficiently? What is available commercially
in high-durability sound generators?
(question for electronics too I guess)
Plastics to check light/UV resistance of
Epoxy resin, Polyester resin, Cyanoacrylate resin,
Polyurethanes, Silicones (all in cured state),
Polyethylene, Polypropylene, Teflon, PETE, Polycarbonate (e.g. Lexan)
Information Treasure: Assuming we find some way of engraving
several pages on a square inch or so, How are we going to make it
readable? If a lens, how do we get different parts of the document
under it. Can we project it out of the artifact using an LED
as a light source? (would only work in very dark conditions)
Still a selection problem if we have the equivalent of several
pages. Any way of getting at them without making something
that has to move?
Back to CSC 200 main page