Live data from Hacker News

Computer Science from the Bottom Up (2016)

bottomupcs.com

51–60 of 79 posts

Re: Computer Science from the Bottom Up (2016)

#51
Not very good to be honest. Nothing about schedulers, bootstrap, and most of it is very general information. it doesn't give actual clear picture how everything comes together, and it is very system specifics (unix). CS should be agnostic to any system architecture. You do cover binary , but the more fundamental question what is the foundation of binary mathematics. It goes back to Turing machine, and how transistors are built and how you compose them into bigger units, and then you talk about CPU architecture, the adder, multiplexer, the PLU, etc.

Re: Computer Science from the Bottom Up (2016)

#52
post #39
post #17

Earlier quoted context omitted.

Isn't it amazing how people pass courses, even perhaps demonstrate mastery at a point in time, but manage to get to later courses without fully understanding things? Students end up with a very strange mental framework by the time they graduate, and it seems like most students actually know shockingly little. I don't know that there's a solution, or even that it's an issue. To me, this is simply a reflection of how p…

Most students approach courses as a form of top-down search with a cache for items they see often. It is generally difficult to get them to reason about subjects from the bottom up. A smaller proportion of students approach courses from the bottom-up (10-20%?) - they tend to start with the basic pieces and glue them together over time to understand larger concepts. I’ve read about this phenomenon (it is extensively d…

I think middle-out is superior for learning both bottom and top at same time ;)

Re: Computer Science from the Bottom Up (2016)

#53
post #49
post #39

Earlier quoted context omitted.

Most students approach courses as a form of top-down search with a cache for items they see often. It is generally difficult to get them to reason about subjects from the bottom up. A smaller proportion of students approach courses from the bottom-up (10-20%?) - they tend to start with the basic pieces and glue them together over time to understand larger concepts. I’ve read about this phenomenon (it is extensively d…

Can you link a document discussing this phenomenon or at least give the relevant keyword to search myself? I have noticed something similar when TA'ing, observing my colleagues and also when learning myself.

I can't give you a direct link to such an article, although I can do a bit more and less. Five years I was writing such an article, although sadly I got side-tracked by other activities, I still have the rough outline that I was working on. From there I can give you a list of keywords / some seed articles to read in the area that you can snowball from to find more relevant material.

Keywords: CS1, cognitive approaches, curricular planning, programming, difficulties, learning, novices, programming, teaching, student retention.

Articles: * SIGCSE Bull. A cognitive approach to identifying measurable milestones for programming skill acquisition. http://doi.acm.org/10.1145/1189136.1189185

* IJ of Man-Machine Studies. "Novices and Programming" by Soloway and Spohrer (Book Review). 1993

* Lawrence Erlbaum Associates. Studying the Novice Programmer. 1989 (Soloway, E. and Spohrer, J. C.

* ITiCSE '05. A study of the difficulties of novice programmers. 2005. http://doi.acm.org/10.1145/1067445.1067453

* Using Alice in Overview Courses to Improve Success Rates in Programming I. Johnsgard, Karin and McDonald, James. 10.1109/CSEET.2008.35

* ITiCSE '03. Using lab exams to ensure programming practice in an introductory programming course. http://doi.acm.org/10.1145/961511.961519

* SIGCSE. Constructivism in computer science education. Mordechai Ben-Ari. http://doi.acm.org/10.1145/273133.274308.

* Signs. Epistemological Pluralism: Styles and Voices within the Computer Culture. Turkle, Sherry and Papert, Seymour. 1990. http://www.thinkingcurriculum.com/turklePapert.pdf

Based on your question I would recommend the last two articles as the most interesting. It's been a long time since I read the Turkle article but I recall that it is the most relevant to understanding why we observe this behaviour, and the Ben-Ari article is a comprehensive framework to wrap that understanding within.

Although I never finished the article (fairly typical academic story :) I did write the software / courses that used it and tried it out successfully for five years. I can't give you a link to the software / results for fairly boring reasons to do with IP and confidentiality, but my overall view was that we can build learning experiences that can be successfully accessed by both types of student - but the level of polish and integration that is required to pull it off is about an order of magnitude greater than what is typically invested in undergraduate education. Obviously there is such a huge variation in the effort that goes into individual courses that such an observation is only relevant to a similar institution / student group at a particular point in time.

Re: Computer Science from the Bottom Up (2016)

#54
post #52
post #39

Earlier quoted context omitted.

Most students approach courses as a form of top-down search with a cache for items they see often. It is generally difficult to get them to reason about subjects from the bottom up. A smaller proportion of students approach courses from the bottom-up (10-20%?) - they tend to start with the basic pieces and glue them together over time to understand larger concepts. I’ve read about this phenomenon (it is extensively d…

I think middle-out is superior for learning both bottom and top at same time ;)

Allows much better compression of knowledge :)

Re: Computer Science from the Bottom Up (2016)

#55
post #51

Not very good to be honest. Nothing about schedulers, bootstrap, and most of it is very general information. it doesn't give actual clear picture how everything comes together, and it is very system specifics (unix). CS should be agnostic to any system architecture. You do cover binary , but the more fundamental question what is the foundation of binary mathematics. It goes back to Turing machine, and how transistors…

Can you recommend one or more resources that you think do a better job achieving a bottom up approach to CS?

Re: Computer Science from the Bottom Up (2016)

#56

Earlier quoted context omitted.

Could someone elaborate on what they think a good developer should "learn cold"

Linear algebra, discrete math, calculus. The mathematical underpinnings of algorithms and data structures. Turing machines will be a lot more useful once you actually know how to use properties to prove more things. A kindergartner can recite the layman description of an infinitely long tape with ones and zeroes but such simplistic understanding has very little practical use if you don't understand how it fits into t…

Can you recommend resources that teach what you think the fundamentals should be?

Re: Computer Science from the Bottom Up (2016)

#57
post #43

Earlier quoted context omitted.

When I did my CS programme decades ago, we all started with Scheme, which is very high-level, and forced everyone to focus on the algorithms, the math of it, instead of what the hardware is doing, or how the Scheme interpreter is implemented. It gets you going, thinking about values and execution and iteration and recursion. Starting with bits and bytes and hardware would be pretty goddamn boring, I think. You'd lose…

Scheme is deadly boring. You'd lose a lot of students that way. Starting with bits and bytes and hardware would be pretty goddamn fun, I think. I first really got into things with assembly language for DOS. It was interesting to directly control the IRQ controller, real-time clock, interval timer, and keyboard interface. These were all motherboard chips that could be messed with. Years later I passed a mandatory Sche…

Agreed.

I recall, in high school, we were writing a disassembler for a custom weird assembly language which was written by one of the school's graduates a few years prior to that... and we had to use this assembler as a language of choice :) That's high school! And it was quite fun. These days, many CS grads/post-grads know tensorflow and other flashy high level stuff while having very vague understanding of how things actually work at the lowest level (source: interviews).

Re: Computer Science from the Bottom Up (2016)

#58
post #13

While not technically all of what's covered in CS, in my experience with a PhD in Comp. Eng., 8 years as an AF comm officer, and 3.5 years in the commercial sector as a soft. eng., this is vastly more useful than most of what's covered in a CS curriculum. The CS curriculum probably made more sense back in the day when everyone was essentially an embedded developer. But nowadays, the most useful knowledge I have is th…

> the CS curriculum

There is no 'the' CS curriculum. You must be thinking of one particular school's CS curriculum, like maybe your own? Another school's CS curriculum is going to be wildly different.

Re: Computer Science from the Bottom Up (2016)

#59

I remember reading this a few years back. I stopped reading at some point because there were so many errors, unfinished bits, and just flat-out garbage. Sorry to the author but this needs to improve. It's a good start, but you need to invite fixes and implement them. Put your email address on every single page and invite fixes and then implement them. This could be an awesome resource, but right now it's too full of…

Everyone who tries to create something eventually comes up against being told their work is flat-out garbage. Unfortunately I don't think there is a vaccination for it, and one must just take their chances and hope to build a mental immunity so it doesn't ruin your day. It's sad to say that many don't develop a resistance, and I think we lose many good contributors that way.

It's always good to take constructive criticism but when the negative commenter contributes little of worth, both in the comment and to the wider community, I think it is safe to ignore.

Thanks for sharing

Re: Computer Science from the Bottom Up (2016)

#60
post #43

Earlier quoted context omitted.

When I did my CS programme decades ago, we all started with Scheme, which is very high-level, and forced everyone to focus on the algorithms, the math of it, instead of what the hardware is doing, or how the Scheme interpreter is implemented. It gets you going, thinking about values and execution and iteration and recursion. Starting with bits and bytes and hardware would be pretty goddamn boring, I think. You'd lose…

Scheme is deadly boring. You'd lose a lot of students that way. Starting with bits and bytes and hardware would be pretty goddamn fun, I think. I first really got into things with assembly language for DOS. It was interesting to directly control the IRQ controller, real-time clock, interval timer, and keyboard interface. These were all motherboard chips that could be messed with. Years later I passed a mandatory Sche…

Another positive aspect of starting off with Scheme was that it leveled the class out, it removed the edge that all the self-taught programmers thought they would have over the people who hadn't really done much programming. Everyone was pretty much equally clueless. Very refreshing.
Post reply on HN