Summary
- Class 00 - 22-August-2017
- Class 01 - 29-August-2017
- Class 02 - 5-September-2017
- Class 03 - 12-September-2017
- Class 04 - 19-September-2017
- Class 05 - 26-September-2017
- Class 06 - 3-October-2017
- North American Qualifier - 7-October-2017
- Class 07 - 10-October-2017
- Class 08 - 17-October-2017
- Break - 19,20-October-2017
- EBRPL Mini Maker Faire - 21-October-2017
- Class 09 - 24-October-2017
- Class 10 - 31-October-2017
- ACM South Central Regional Programming Contest - 3,4-November-2017
- Class 11 - 7-November-2017
- Class 12 - 14-November-2017
- Class 13 - 21-November-2017
- Class 14 - 28-November-2017
Return to Class Main Page
Class 00: 22-August-2017
- Announcements
- Class details:
- 1 hour of credit per time taken
- may take up to three times for credit
- if passed 3 times, it can replace a sophmore elective
- Does not count as part of the Digital Media minor (not one of the DM courses)
- North American Qualifier
- ACM ICPC South Central Regional Programming Contest
- Baton Rouge Mini Maker Faire
- Class details:
- Class policy
- Grading policy
- Calendar
- web
- mailing list
- contests
- Homework:
Return to Class Main Page
Class 01: 29-August-2017
- Announcements
- North American Qualifier
- ACM ICPC South Central Regional Programming Contest
- Baton Rouge Mini Maker Faire
- ACM Meetings
- Homework:
- Interview -- answer questions to guide interview, get interviewer out of book. I posit that going through an interview is like a chess game:
- opening
- middle
- closing/end
The opening (or book as I refer to it) is preplanned and without much value or content. The middle is where the interviewee has the chance to make an impression. The closing is about moving on to the next person and covering bases. The longer the interviewer is in book, the more like every other interview, yours is. Get hte interviewer out of book as soon as possible. Answer questions in a manner that basically leads to the next question you want asked. This will make the interview unique and provide you the optimum opportunity to stand out.
Here is an interesting write up of the same 3 phases in Chess. It clearly points out that the "book opening" is well defined and that the end game is also well known. The variability in chess (and the chance for one player to show skill over another) is in the middle game. It also points out that one characteristic that separates really good chess players from not as good is the extra effort the experts have put into learning openings (studying book).
Synopsis: Get interviewer out of book as early as possible and turn interview into a conversation lead by you. If you can do this, and you lead the interviewer down an interesting and positive view of you, then your chances of a follow up interview are much better (making the short stack).
Corollary: If you direct the conversation, you can easily avoid any topics/areas that you feel are your weaknesses.
- Talked briefly about ICPC Fact Sheet and number of teams that compete for a chance to go to ICPC -- how many?
- Is Computer Science a science or an art? Science is appying known steps. Art is bringing individuality/creativity to science.
- Talked about style. Can you define your programming style? Look at tools like GNU highlight that can reformat your source in different styles. Challenged each person to use highlight (or something similar) to "define" their style -- in other words, what switches do you need to add
to highlight to reformat source code so that it looks the way you think it should (which presumably is how you normally write it)?
Probably should have pointed y'all at Wikipedia's Programming Style page. Here is a really neat article about style.
What if you do define your style (i.e. a list of switches to reformat code to look the way you want)
- Easy to see reformat code and see how much you deviate
- Easy to reformat all code and have it look the way you want
- As your style changes over time, the switch changes make it clear
- It points out style changes so you can decide if the change is desirable
- Makes it much easier to compare two styles (look at switch differences)
- Makes it easy to try alternate styles
- Prepares you for wokring where a specific style might be mandated
- Talked about problems 10611, 408, 12468
Return to Class Main Page
Class 02: 5-September-2017
- Linus Torvalds, Andrew Tannebaum, GNU project, Richard Stallman
- Dynamic programming intro
- New text for class
- Comparison of programming paradigms
- Constants on left
- Common mistakes in online and real-time contests
Return to Class Main Page
Class 03: 12-September-2017
- Please do the homework -- send me UVA number
- Think about teams and competing
- Talked about people/computing history
- Difference in free as in beer vs free as in thought.
- software licenses: GPL vs FreeBSD
Return to Class Main Page
Class 04: 19-September-2017
- Small turn out for class -- disaappointing
- talked a little about Slashdot/net neutrality/packt/news.googpe.com/...
- td talks - showed Michael McDaniel: Cheap, effective shelter for disaster
- Harry Chapin - Thanksgiving and Calluses
- talked about CS, having to cover fundamentals, can't do 5 -7, value of writing code folks invented N years ago, asked if anyone was going to invent an algorithm
- Desgn vs Coding -- if you have to think while coding, you are not coding -- are designing and coding. Top down vs bottom up. Go back and rewrite something that already works in a different way and see what happens. Figure out how to turn things into fun.
Return to Class Main Page
Class 05: 26-September-2017
- Talked a little about Quora
- Typical approach to learning a language:
- Present everything the person needs to write a simple program
- Have them write the simple program
- Layer on top
- The problem with this is that in a language like Java, step 1 is a lot of stuff. It takes a long time for that much stuff to make sense to a beginner. By then more stuff has been layered on top. This makes it very hard for beginners to decode and understand the basics.
- Alternative idea:
- start with an assignment statement and a flow control
- With just these basic flow control constructs can be demonstrated
i = 1 tot = 0 top: tot = tot + i i = i + 1 if (i < 11) goto top
- This is a repeat until loop. Learnign the various control structures this way will make it easier for beginners to grasp them. It will also provide the chance for a person to understand them better so they can choose wisely when to use which.
- More importantly, that basic syntax could be taught day 1. In the firs week, beginners could be writing code that did stuff. Simple I/O could be covered at end of week so student could then get a real positive feedback early in the cycle.
- Another benefit of this approach is that it gets the concept of gestalt across. The above example is nothing but assignment, simple arithmetic and an if. Individually, these are relatively easy concepts. Combined in this manner and you have code that does a summation. The combination (sum) of the individual parts implements a more complicated concept. Very early on a beginner could see the power of combining simple commands. They could also see that the order and logic are critical in turning commands into an "algorithm".
- Mentioned the Humble Book Bundles where some of the money goes to charity.
- 11057,10062,11530
Return to Class Main Page
Class 06: 3-October-2017
- Announcements
- NAQ
- Frequency problem had a compliucation -- need to sort
- Frustration -- a significant factor in why most projects/documents come to an end
- Frustration when doing something comes form the goal and from the tools used to accomplish the goal
- Choosing/making tools that are more natural, that seem like an extension of yourself, that require minimum of thought/effort allow more focus for the problem
- Being able to make tools is another step above using tools
- Looking at problems from multiple directions can often provide an attack vector that is easier
Return to Class Main Page
North American Qualifier: 7-October-2017
Return to Class Main Page
Class 07: 10-October-2017
- Announcements
Return to Class Main Page
Class 08: 17-October-2017
- Announcements
Return to Class Main Page
Break: 19,20-October-2017
Return to Class Main Page
EBRPL Mini Maker Faire: 21-October-2017
- The Baton Rouge Mini Maker Faire will be Saturday, October 21st.
- Looking for folks to demo Arduino stuff!
- Note that this is during Fall Hoiday
Return to Class Main Page
Class 09: 24-October-2017
- Announcements
Return to Class Main Page
Class 10: 31-October-2017
- Announcements
Return to Class Main Page
ACM South Central Regional Programming Contest: 3,4-November-2017
Return to Class Main Page
Class 11: 7-November-2017
- Demo'd a simple basic program and talked about simplicity of language
- Looked briefly at source of a Cobol program and talked about the data section and commands like move corresponding. Briefly tried to explain the various numeric types and why they existed
- Looked at how integers are stored in binary
- looked at 2's complement and actually went through the steps
- demonstrated that 2's complement of x is the same as negating x and that a-b become a+ -b (apply 2s complement to b, then add a to it)
- talked about real numbers (sums of 1/(2^n) times 2^n). Explained how 1/3 does not have a precise binary equivalent (when store as real or double). Explained how the errors accumulate as more and more computations are done.
- brought up the entire can of worms when dealing with floating point in computers and the process of trying to determine current level of accuracy
Return to Class Main Page
Class 12: 14-November-2017
- Final
- Announcements
Return to Class Main Page
Class 13: 21-November-2017
- Announcements
Return to Class Main Page
Class 14: 28-November-2017
- Announcements
- Class Final
Return to Class Main Page