Summary
- Class 00 - 17-January-2017
- Class 01 - 24-January-2017
- Class 02 - 31-January-2017
- Class 03 - 7-February-2017
- Class 04 - 14-February-2017
- Class 05 - 21-February-2017
- Mardi Gras - 28-February-2017
- Class 06 - 7-March-2017
- Class 07 - 14-March-2017
- Class 08 - 21-March-2017
- Class 09 - 28-March-2017
- Class 10 - 4-April-2017
- Break - 11-April2017
- Red Stick Festival Mini Maker Faire - ??-April-2017
- Class 11 - 18-April-2017
- Class 12 - 25-April-2017
Return to Class Main Page
Class 00: 17-January-2017
- Announcements
- ACM Meetings
- ACM Comunity Meetups (study, arduino, ...)
- Class policy
- Grading policy
- Calendar
- web
- mailing list
- contests
- Homework:
- UVAthons -- get together and work on UVA problems
- If you do not know the rules -- how are you going to win the game? -- read the Student Handbook
- 24 hours - 2 hours a week for a dozen weeks
- Mentioned Quora - it has a collection of questions answered by various people. In particular, a lot of questions about how to win programming contests.
Return to Class Main Page
Class 01: 24-January-2017
- Announcements
- TED x LSU - March 11, 2017
- ACM Meetings - Feb 1, 5:00 PM, Nicholson 109
- ACM Comunity Meetups (study, arduino, ...)
- NAIPC (North American Invitational Programming Contest) is April 15, 2017. They will have an open division that we can compete in.
- Tried to introduce dynamic programming
- Looked at problems 100, 12356, 11581
Return to Class Main Page
Class 02: 31-January-2017
- Homework
- Register at UVA Online Judge so you can do homework
- Send an e-mail to class@isaac.lsu.edu that has UVA id as the subject and lists your name and your UVA ID (the numeric number -- the username is not sufficient). You can see the number by going to UVA, login, click on 'My Account'. I need the number on the ONLINE Judge ID line.
- Register at ICPC
- Announcements
- TED x LSU - March 11, 2017
- ACM Meetings - Feb 1, 5:00 PM, Nicholson 109
- ACM Comunity Meetups (study, arduino, ...)
- NAIPC (North American Invitational Programming Contest) is April 15, 2017. They will have an open divis ion that we can compete in.
- Communication - Sorenson OSCON Keynote
- Talk about dynamic programming
- Wikipedia Dynamic Programming
- To solve a problem with dynamix programming, 2 conditions must be met:
- You must discover a recursive solution
- You must find a way to store cache reults to avoid redundant computation
- Typically DP comes from a recursive solution (such as a depth first search) where the tree instead of spreading out indefinitely, it folds back on itself (some of the branches converge -- think chess for a minute: four different first two move sequences can produce the exact same resultant board)
- So after you develop the recursive solution, you then look how to save partial results to avoid recomputation
- Typically, DP problems process some sort of tree, graph or matrix recursively. Once a value for a portion of the path is calculated it is saved so future visits to that point can simply use the value instead of recomputing it.
- The term memoization comes up this. This is basically a magic word for caching the partial results
- The term sub-problem also shows up -- basically this is the idea that you can define a solution to a pice (sub) of the puzzle
- Another term that shows up is Optimal substructure. This means that the problem can be solved optimally by solving sub-problems optimally.
- Summary: Develop recursive solution, figure out how to save partial results to avoid re-computation (prune the work)
Return to Class Main Page
Class 03: 7-February-2017
- Homework
- Register at UVA Online Judge so you can do homework
- Send an e-mail to class@isaac.lsu.edu that has UVA id as the subject and lists your name and your UVA ID (the numeric number -- the username is not sufficient). You can see the number by going to UVA, login, click on 'My Account'. I need the number on the ONLINE Judge ID line.
- Register at ICPC
- Announcements
- TED x LSU - March 11, 2017
- ACM Comunity Meetups (study, arduino, ...)
- NAIPC (North American Invitational Programming Contest) is April 15, 2017. They will have an open divis ion that we can compete in.
- April 29, 2017 -- Red Stick Festival Mini Maker Faire
- Ted Diet talk
- Nested IF vs Case vs Array
- Code to pass 3x3 filter over a 2d array
- code to process a 2d array spirally
Return to Class Main Page
Class 04: 14-February-2017
- Homework
- Register at UVA Online Judge so you can do homework
- Send an e-mail to class@isaac.lsu.edu that has UVA id as the subject and lists your name and your UVA ID (the numeric number -- the username is not sufficient). You can see the number by going to UVA, login, click on 'My Account'. I need the number on the ONLINE Judge ID line.
- Register at ICPC
- Announcements
- TED x LSU - March 11, 2017
- ACM Comunity Meetups (study, arduino, ...)
- NAIPC (North American Invitational Programming Contest) is April 15, 2017. They will have an open divis ion that we can compete in.
- April 29, 2017 -- Red Stick Festival Mini Maker Faire
- Introducing CS Professional of the week
- Donald Knuth
- Stanford web page (where he is Professor Emeritus)
- Wikipedia
- WikiQuotes
- More quotes
- xkcd
- ACM Turing Award
- Brief biography
- Amazon -- Knuth books
- Article about reading "The Art of Computer Programming""
- Overleaf (One of many online TeX services for collaboration)
- Donald Knuth
Return to Class Main Page
Class 05: 21-February-2017
Return to Class Main Page
Mardi Gras: 28-February-2017
Return to Class Main Page
Class 06: 7-March-2017
- Ted talk about machine athletics (drone)
- Contimuum: hardware - firmware - software
- problem 713
Return to Class Main Page
Class 07: 14-March-2017
- next week: ACM meeting
- Red Stick Festival
- North American Open
Return to Class Main Page
Class 08: 21-March-2017
- Announcements
- ACM Meeting tomorrow
- Red Stick Festival Mini Maker Faire this April 29
- North American Invitational April 15
- We covered problem 713 last week, but I was getting run time error; finally I noticed that I was returning 1 instead of 0 at program termination; re-iterated that anythong can go wrong -- not just you primary algorithm
- Talked about problem 594 (One Little, Two Little, Three Little Endians)
- Problem is about how data is actually stored.
- In this problem, if A,B,C,D are the four bytes of a binary number (A being most significant down to D being least significant); it is stated that some machine write the bytes out ABCD and others write the bytes out DCBA.
- The goal is to read a number in and translate it to the other storage method and then output the original number and the rearranged number
- The problem goes into lots of detail about negative numbers (and 2s complement) which turn out to be irrelevant
- I chose to solve this using a union structure of C (equivalence in fortran, redefines in Cobol, variant record in pascal, ...)
- Tried to get across the details of having multiple data types share the same physical memory locations
- Wikipedia about variant records
Return to Class Main Page
Class 09: 28-March-2017
- From ACM Meeting -- Game development panel
- C++ -- not just a little, in depth
- Work a lot beyond class
- C++ - performance, optimization matters
- Emphasis on assembly
- Coming in future -- data analysis, analytics
- Emphasis on cost, the cost of implementing something in resources and runtime
Return to Class Main Page
Class 10: 4-April-2017
Return to Class Main Page
Break: 11-April2017
Return to Class Main Page
Red Stick Festival Mini Maker Faire: ??-April-2017
Return to Class Main Page
Class 11: 18-April-2017
Return to Class Main Page
Class 12: 25-April-2017
- Final
Return to Class Main Page