applied modern algebra - projects
the following information is tentative and will be updated
during the semester.
projects are only for students enrolled in 5383. for the project,
you should learn about a topic related to the course material, and
write a report
and give a presentation on this topic. your topic
must be approved in advance, and must contain a significant amount of
mathematical and/or programming content. the report and the presentation
will be graded separately, and each is worth 50% of your project
you may do your project individually or with a partner.
(the partner should also be in 5383--no ringers!). if you choose to work with
a partner, then i will expect more substance to your project, with a
description of what each person contributed, and both individuals
still need to give a presentation.
- 3/23-3/27: submit a project proposal - via email, send me roughly a
paragraph explaining what you'd like to do for your project.
if you want to do your project with a partner, each of you should still send
me separate emails, and say who you want to work with.
- mon 4/13: turn in a draft/detailed outline to me via email. i will
plan to give you feedback by the end of the week. you may submit this
earlier if you want feedback earlier.
4/20--4/29: give a presentation (10-15 min per person). we will
discuss scheduling in april, but if there is a certain day you want to
present, feel free to
- th 5/7: submit your final written project
(you may hand in a print-out
at the final exam period or email it to me by the end of the day, or anytime
earlier) AND the slides from your presentation
suggested ideas for projects
- classical ciphers: double transposition and nihilist ciphers like VIC
- crypography in world war i
- crypography in world war ii
- nist standards: des/aes
- primality testing
- factorization algorithms
- elliptic curve crypography
- digital signature schemes/pgp
- cryptocurrencies (e.g., bitcoin)
- random number generation in cryptography
- modern password security (protocols, salting, hashing)
- error-correcting codes
- shannon information theory
- data compression
your report about your topic will be graded on the following aspects:
content (it shouldn't be too "lite"), clarity (this includes overall
organization as well as clarity of individual sentences/paragraphs), and
originality. originality does not mean i expect you to prove
new theorems or come up with new cryptographic ideas. but the bulk
of your presentation should be novel, based on how you assimilate information
from your references, and possibly (depending on your project topic) working
out examples on your own and/or writing your own code to illustrate things.
it should certainly not be a slightly modified version of some exposition
you find online.
the main general guideline is that you should write the report like a
professional mathematical exposition. here are a few of examples
of mathematical exposition:
my notes on sums of squares, sums of cubes and modern number theory
(structurally, that exposition is longer than i'm expecting from you, and you don't need an abstract or table of contents, though you can include them if you want; of course topically this is not about "applied algebra")
and pseudoprimes by graham jameson
(topically relevant, but for your project, i'd like some exposition about
the relevance and import of pseudoprimes to cryptography and rsa)
the fifteen puzzle (and rubik's cube) by keith conrad
(of course, topically this is not a great fit, though is about "applications" of algebra, and for your project, i'd like expect more of an introduction)
- your name and project title should be at the top or on a separate title page, your choice
- the write-up should consist of an introduction, main text, references and
if appropriate appendices (for code, supplementary tables, etc).
- the introduction should clearly introduce your subject and summarize
what you are doing in the project.
- it is a good idea to split the rest of the main text into sections,
according to subtopics. the text might have a conclusion section at the
end---whether it makes sense to do this depends on your project, but it's
probably a good idea most of the time.
- label/name theorems, examples, etc and use those labels/names when you
refer to them later (as a general practice, you don't necessarily have to do
this every time)
- when appropriate for facts, results, ideas, etc., make references to quality sources (this does not typically include things like wikipedia, reddit, blogs,
etc--it means things like textbooks and professional articles).
present the references as a list at the end of the main text, like
a standard math paper (e.g., see my expository notes above--you don't
have to follow the exact formatting). you should
cite all of your main sources, and all or the references in the reference list
should be referred to in the main text when you are using them.
and any quotations (copied text),
reused figures, etc. should clearly delineated and sourced. there is no strict requirement on the number of references you need, but it's better if it's more than 1 or 2 sources.
- the format for the intro + maint text should be standard 12pt font, single-spaces 1-inch margins.
- the length of the intro + main text should be roughly 10-15 pages.
(do not count references, figures, code, etc. it's fine to have figures in the main text, but i don't want to see your main text ending on p. 10 if 5 of the pictures in between are just pictures. i also don't want to see 5 pages of quotes--remember originality.)
- any code which you wrote or supplementary data should be included at the end as appendices. if you use someone else's code, that's fine, just reference their code appropriately. you're also welcome to use various python modules etc., or languages that aren't python, but you shouldn't expect that i will know the language you are using.
however it may make sense to include snippets of code or pseudocode in the main text, if you are talking about algorithmic/computational aspects.
- imagine your audience for the report consists of your fellow students in the
class. write roughly at this level, though you may use slightly more
advanced standard mathematics without explaining (e.g., things covered our 4000 level intro to abstract algebra course). certainly you shouldn't assume i know everything you've studied in preparing for this project. (possibly i know it
quite well, and possibly not, depending on your project; but you will be graded in part on how clearly you explain your material to an audience similar to your classmates.)
- define notation and clearly define concepts/mathematical definitions
that you introduce which we have not already covered in class.
- you need to show off some analytical abilities in the project, so you should write up things like proofs of key results (when possible); working out details of examples; clearly explaining/analyzing algorithms; writing your own
nontrivial code; and clear logical explanation of how different ideas
fit together. now i don't expect your project to have all of these aspect,
but at least 1 or 2 of them should be a significant component of your project.
if you are following proofs or examples from other sources, you should cite them, but write them up in your own words. however, for examples, if feasible i'd like you to try to work out your own examples to really understand the material.
- the writing should be reasonably professional, like the example expositions above, but it can be a bit casual. e.g., you can write in the first person if you want. feel free to add more informal or meta comments in footnotes
(e.g., "i tried
to figure out if the converse of this theorem is true, but couldn't. i still
think it should be true because...")
- i suggest, but do not require, that you write your report in latex, or
some tex variant.
- if you have questions as you're working on your project, either about the material or references, or what i'm looking for, please ask.
- submit your report as a single pdf file, by email to me, by the appointed day
presentation guidelines and suggestions
you may ignore this section
your presentation should be:
here are some friendly suggestions to help make a good presentations, which
should also help make you more comfortable when you present. and don't
worry---i'm not grading you on speaking ability, but on content:
did you prepare well? are your slides clear?
did you learn something? do you have any idea what you're talking about?
if so, you should get high marks for the presentation.
- 10-15 minutes in length. (expect that you may get asked 1 or 2 questions
during your presentation, and then a couple at the end.)
- present with computer "slides". while you
may use the board to quickly sketch out something or help answer a question,
you should not be spending most of your time writing on the board.
(note: you are expected turn in your slides to me together with your
- make slides using latex+beamer or powerpoint
- have a title slide with a poignant title and your name(s)
- each slide should be easy to read: generous font size, highlight
main ideas, and illustrative pictures are always nice
- except for the title slide, spend more than 10 seconds on each
slide. if you go through your slides too quickly, the audience
will not have time to absorb what is on each slide. (corollary: do not
have 100 slides)
- you don't need to talk about everything you did for your project
in your presentation. in fact, you shouldn't have time for this. focus
on the most interesting/important aspects.
- your presentation should have 1 or 2 main points. for most topics, it's
suitable to start with a motivating question, which you will at least
partially answer by the end. emphasize the problem at the beginning, and
the answer at the end. some speakers outline their talk in advance so the
audience knows where they're going, but it's perhaps unnecessary for a
15 minute presentation.
(this structure is similar to what I expect for a write-up.)
- do you enjoy teachers who just read out of the book? if not, don't just
read your slides word for word either. slides should
not be a transcript of what you're going to say, but visual
highlights/reminders to help the audience focus on and understand what
you're talking about. if you want you can have separate notecards to
remind yourself what you want to say about each slide. but again,
don't read the notecards verbatim.
- the audience for this presentation is your fellow students, not me.
make it understandable for them, so they can learn something.
your project write-up is directed to me, so you can say more advanced things
- practice your talk at least 2-3 times, and time these.
the first time should be just to figure out exactly what you will say/how to
explain things and get a general sense of your timing. then edit things
in or out if you need to, and try timing it again.
repeat until you're confident you can finish in time.
- anticipate likely questions from the audience so you can prepare
anwsers and sound like a genius when you answer them skillfully. or
pre-emptively answer them in your presentation.
- did I say make sure you can finish in time? a minute over is forgivable.
five is not. keep an eye on the clock, and figure out how to shortcut to your
thrilling conclusion if you are running short on time.
- thank your audience at the end.