933 karma · joined August 12, 2013
Not to insult Hacker News, but I think you can get A LOT more from the expert teacher community than the expert software engineering community.
Aristo's best guess: It hurts because you're alive.
Confidence: 19.04%
I say this with a tremendous love of Turbo Pascal - it was my first real programming environment as a kid. But I also had a great time with environments like Klik-n-Play and GameMaker.
- Extracting digits from numbers (easily done with a few function calls in Python, or some math)
- Calculating frequency of a known set of items in a sequence
- Some application of simple mathematical formulas[1]
I wouldn't mind trying this at some point...
[1] https://en.wikipedia.org/wiki/Benford%27s_law#Statistical_te...
def get_my_age():
return 21
The students' reaction to this in office hours can be... interesting. I am curious how many of them actually follow the comment at the bottom of the question, and what they think:> Reflect on the difference between creating a variable with a constant value and creating a function with no arguments and a constant return value.
Up to you to decide if this has any pedagogical value. The real learning objective was to "write a function that has no arguments but returns a constant value", so getting them to draw big conclusions about the nature of functions and values and so on is outside the scope of this little activity.
[1] https://github.com/coreutils/coreutils/blob/master/src/rm.c
[2] https://github.com/coreutils/coreutils/blob/master/src/remov...
Miller's Law - The average person can only keep 7 (plus or minus 2) items in their working memory.
I actually needed to research this claim for my dissertation, and found that some researchers believe it is more complex than as presented by Miller. The number can fluctuate depending on what is being stored, the individual, and a number of other factors. A worthwhile starting point is the Wikipedia Page [1][1] https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus...
The percentage of Ph.D. graduates who took North American
academic jobs rose in 2015-16 for the second straight year,
to 30.7 from 29.0 last year. However, the percentage of
graduates taking tenure-track positions in North American
doctoral-granting computing departments fell from to 10.0 in
2014-15 to 9.0 in 2015-16. The percentage taking positions in
North American non-Ph.D.-granting computing departments
fell from 2.3 percent to 1.6 percent, while the percentage
taking North American academic postdoctoral positions
jumped from 9.7 percent to 14.3 percent.[1]
[1] https://cra.org/crn/wp-content/uploads/sites/7/2017/05/2016-...I'm not particularly adept at security. Why would this occur?
Notational Machine for the win!
Look beyond the mechanical aspects of the problem, and consider the ramifications of testing within the education system as a whole.
1. What book do we assign?
2. What should we lecture?
3. What sort of code review work should we have students do?
4. What kind of assignments should we use? But only to say that he won't cover it in the article!
This is the almost the exact opposite order of what is most useful in terms of learning. Yes, some people (especially auto-didactic and well-focused students) are able to learn tremendous amounts on their own through books. But they are a relatively poor tool for teaching, compared to active learning methods. Lecture can be great, but usually is passive and worse than useless.
I want to acknowledge the importance of defining what you will teach and what successful (end-of-course) students look like and how to assess them. After you've decided that, it is proper to devise assignments and assessments, and then to decide on lectures and supplemental materials that support students in completing the assignments and assessments successfully. The time students spend should be active and practical - not that readings can't be provided, but they should be on-point and meaningful. Proper application of Instructional Design principles and theories of learning can make a world of difference for students.
But kudos for thinking about it, kudos for thinking about feedback mechanisms, and kudos for
PS: Obviously, I believe C has a great place in the curriculum - shouldn't leave undergrad without it!