390 likes | 398 Views
Dive into error-correcting codes with Atri Rudra at CSE 545 offering an in-depth study on combinatorics, algorithms, and applications.
E N D
Error Correcting Codes: Combinatorics, Algorithms and Applications CSE 545 January 12, 2009
Let’s do some introductions • Atri Rudra • 123 Bell Hall • atri@cse.buffalo.edu • 645-3180 x 117 • Office hours: TBA
Handouts for today • Syllabus • Feedback form • Also fill in the sheet being passed around with your name/email
Plug for feedback forms • Completing the form is voluntary • Purpose of the form • Fix office hours • For me to get an idea of your technical background • Last 5 minutes of the lecture to complete it
Course webpage http://www.cse.buffalo.edu/~atri/courses/coding-theory/
Course blog (codingtheory.wordpress.com) • Used for announcements • YOU are responsible for checking the blog for updates
Why use a blog? • Easy access • Easier to link to URLs and displaying math
What will appear on the blog? • Change in office hours • An entry for each lecture/homework • Comments section to ask questions or post comments • A list of suggested papers for presentation • A post on some interesting side story/comment
Questions/Comments? • If something is broken on the blog (e.g. you cannot post a comment), let me know
Makeup classes • Some classes will be canceled • I will be traveling • 1 class for now • Need one 60 mins makeup lecture • Indicate your preferences in the feedback form • February 13 class is cancelled
References • No text book • Main source: Notes from Fall 07 course • Links on the course blog/webpage • Standard coding theory texts • MacWilliams and Sloane • van Lint • Blahut • Handbook of coding theory
Pre-requisites • No formal pre-requisites • Probably no one will have all the pre-req’s • Mathematical maturity • Comfortable with proofs • Willing to pick up basics of new areas • Will spend one lecture on the pre-req’s • Linear Algebra • Finite Fields • Probability • Algorithms/ Asymptotic Analysis
Grades and such like • Updating Wikipedia/ Scribing notes • 30-40% • Homework(s) • 40-25% • Paper Presentations • 30-35%
Updating Wikipedia • You need a choose a coding theory topic • Either the entry is not present or the entry is “bare-bones”
More details • You get to play on an in-house Wiki • Wiki should be up in a couple of weeks • You will need some LaTeX knowledge • Deadlines • March 23: Let me know your choice • March 30: Submit one page “report” on what you intend to do • April 20: Submit your final version in the in-house wiki
Scribing notes • Some lecture notes will be scribed by a student (maybe give some extra details) • At most once during the course • Depends on the class strength • Use LaTeX • Style file on the webpage • They are due in a week • Notes will be graded on timeliness & quality
Questions/Comments? • Check out the syllabus for more details
Homework • 1-2 depending on other course load • Collaboration generally allowed • Work in groups of size at most 3 • Write up your own solutions • Acknowledge your collaborators • Breaking these rules will be considered as cheating • More details when they are handed out
My homework philosophy for 545 • NOT to make sure you understand what I teach in the lectures • Assumption: You’re motivated enough • Homework problems either • Proofs that were not done in the class; or • Material that is not covered in the class • Closely related to something that is
Paper presentation • Pick a paper to present • List will be on the blog by the end of 2nd week • You can choose your own paper • Need my approval • Dates for presentation • April 28 and April 29 (Reading days) • Deadlines • April 13 or April 24 • if you choose your own paper or not • FCFS on the suggested list
Questions/Comments? • Check out the syllabus for more details
Some comments • Decide on a Wikipedia/paper topic early • Different topics might need different prep. work • Come talk to me • Homeworks might take time • Do not wait for the last moment
Some of my teaching “quirks” • Neighbor talk time • Periodic feedback forms
Rudra is the angry form of Shiva Sanjay Patel, “The Little Book of Hindu Deities,” Plume, 2006
Academic Dishonesty • All your submissions must be your own work • Penalty: • Minimum: zero credit on the particular assignment • Highly likely: An F grade • Possible: F “due to academic dishonesty” on your transcript • YOUR responsibility to know what is cheating, plagarism etc. • If not sure, come talk to me • Excuses like “I have a job,” “This was OK earlier/in my country,” etc. WON’T WORK
If grades are all you care about • Please drop the course • You’ll be fine if • You do your assignments with honesty • Make a reasonable attempt at them
Questions/Comments? • Check out the syllabus for more details
Coding theory http://catalyst.washington.edu/
What does this say? • W*lcome to the cl*ss. I h*pe you w*ll h*ve as mu*h f*n as I wi*l hav* t*ach*ng it! • Welcome to the class. I hope you will have as much fun as I will have teaching it!
Why did the example work? • English has in built redundancy • Can tolerate “errors”
The setup C(x) x y = C(x)+error • Mapping C • Error-correcting code or just code • Encoding: xC(x) • Decoding: yx • C(x) is a codeword x Give up
Communication • Internet • Checksum used in multiple layers of TCP/IP stack • Cell phones • Satellite broadcast • TV • Deep space telecommunications • Mars Rover
“Unusual” applications • Data Storage • CDs and DVDs • RAID • ECC memory • Paper bar codes • UPS (MaxiCode) Codes are all around us
Other applications of codes • Outside communication/storage domain • Tons of applications in theory • Complexity Theory • Cryptography • Algorithms
The birth of coding theory • Claude E. Shannon • “A Mathematical Theory of Communication” • 1948 • Gave birth to Information theory • Richard W. Hamming • “Error Detecting and Error Correcting Codes” • 1950
Structure of the course • Part I: Combinatorics • What can and cannot be done with codes • Part II: Algorithms • How to use codes efficiently • Part III: Applications • Applications in theoretical Computer Science
The fundamental tradeoff • Correct as many errors as possible while using as little redundancy as possible • Intuitively, contradictory goals