Live data from Hacker News

The Practice is not the Performance: Why project-based learning fails

pathsensitive.com

71–80 of 136 posts

Re: The Practice is not the Performance: Why project-based learning fails

#71
post #22

I attended a university with a strong co-op program, and I personally believe it is the best possible solution. Classes were focused on theory and my three 6-month co-ops were spent working on meaningful software projects at real companies. As a result, I was able to build up a solid background in Computer Science theory, didn't have to deal with the shortcomings of group class projects, and learned how to ship produ…

How does a strong co-op program work, and why do you think it's the best? Am from SEA university programs and I don't believe we have any of those. Would be awesome to understand more about the process.

Re: The Practice is not the Performance: Why project-based learning fails

#72
I think this is missing the main point of Project Based Learning: you choose what you want to learn. You cannot treat motivation as a constant when comparing educational methods. Students get much more from their learning when it is intrinsic and specific to their interests, as is the case when doing a project.

Re: The Practice is not the Performance: Why project-based learning fails

#73
I do a little teaching on the side. My primary objection to common (can't say if it is traditional) programming instruction is not theory vs practice, it is "of what"

Most of my time coding is spent pouring through code that i didnt write (at least not recently), building the design in my mind, finding the spot to change, and then making that change.

In contrast, most school coding assignments are write-from-scratch one-offs, usually involving only one students' code.

Re: The Practice is not the Performance: Why project-based learning fails

#74
post #56
post #22

I attended a university with a strong co-op program, and I personally believe it is the best possible solution. Classes were focused on theory and my three 6-month co-ops were spent working on meaningful software projects at real companies. As a result, I was able to build up a solid background in Computer Science theory, didn't have to deal with the shortcomings of group class projects, and learned how to ship produ…

I don't know. I attended a regular computer science program and I am glad I did. The goal of university is not to prepare you as best as possible for working life, but to teach academic thinking. Class projects usually have a specific purpose, like teaching computer vision, operating systems or building compilers. You'll spend the rest of your life working. There is no need to rush into it, in my opinion. Then again,…

For you, university was a means to the end of learning academic thinking. For me, it was a means to the end of attaining a decent job.

There are certainly arguments to be made that university is by definition, in original intent, and in theory solely a vehicle for teaching academic thought, but I think the pragmatic counter to them is a poll of "why are you here?"[1] , and should be considered valid.

The end result is that university is in practice not one or the other but both: it must teach some academic thought, and provide some job-readiness.

I wish to digress for a moment into why that is not just a failing of many students to understand school's true purpose: many people (hi) do not come from a background where lifetime economic security is a guarantee, and while programming is a rare example (at least in North America) where if you spend the time, you can probably do it, and if you can do it, you can probably be paid well for it, there are unfortunately still gatekeepers. HR departments frequently resort to very base credentialism to sort through candidate resumés, and those with schooling typically come first and get higher base offers of compensation. Not to speak of the network social effects of spending years with other entrants into the field, and the opportunities for extra-curricular pursuits which also are well regarded by those gatekeepers.

These among other things have forced many people with mere occupational goals to pursue university degrees. I wish it were not like this, because my professors universally did not feel that that was a good reason to be there, and occasionally avoided very useful practical topics on principle, but I (and many within my cohort) felt there was no better alternative for a successful outcome in life, and it has mostly worked out.

1 - I of course have not conducted this poll, but I do strongly believe that at least a plurality would respond with job-attainment as their primary goal, and would not be surprised by an even greater response.

Re: The Practice is not the Performance: Why project-based learning fails

#75
post #57

Earlier quoted context omitted.

PhD is skilling in academic skills. Undergrad and most masters programs are still just going for information recall. This is why PhDs are specific, intensive, daily, guided, etc.These are all the characteristics of skill aquistion. Compare, say, with paino tuition. All skill acquisition is basically a form of apprentiship. PhDs are apprentice academics. Ask yourself the simple question: after finishing this education…

The answer is that you've learned to learn. You got some breath of knowledge, not everything is relevant but it helps putting things in perspective. This is crucial. But the most important thing is that you've learned how to quickly adapt and pick up new things. This is what is valuable and in combination with a broad understanding is very much worth the education. It is okay if the understanding is shallow or even o…

but do students actually "learn to learn"?

is there any strong evidence that higher education improves some general ability to learn new concepts and skills?

you do get more efficient at preparing for academic assessments but does this carry over to other areas? Probably not.

Is it a justification for four years of education? definitely not!

Re: The Practice is not the Performance: Why project-based learning fails

#76

Earlier quoted context omitted.

I don't know why this is downvoted. I think that Bryan Caplan's book The Case against Education - Why the Education System Is a Waste of Time and Money ( https://press.princeton.edu/titles/11225.html ) makes a pretty strong argument to support the related points.

Most people on hacker news have (as far as I've noticed) very much enjoyed their university programs and will defend them quite vehemently. Often these programs were quite high quality, with lots of close contacts with TA's and professors. Further, for people who did theoretical CS or math programs, it can feel quite frustrated working in a field with so many "self-learned" people and find that these are often ignora…

On the flip side of this, many of the most capable and intelligent people I have worked with had no degree (or a non-CS one, e.g. fine art is particularly common), and when I try to think of times my algorithms, OS, networking, maths, or even data structures courses have been directly beneficial to my daily work, I have little to show.

Those all had knock-on effects and have indirectly made me more capable and confident in my analyses of performance or occasionally in troubleshooting, but it is very rare that I spend a day doing something deeply theoretical, and it is conversely very common to spend days hitting my head against walls with configuration, integration, or versioning of build/deploy/test components and dependencies. My CS theory is no good there, only methodical troubleshooting and asking for help in IRC are effective, and anyone can learn that by doing.

Re: The Practice is not the Performance: Why project-based learning fails

#77
post #71
post #22

I attended a university with a strong co-op program, and I personally believe it is the best possible solution. Classes were focused on theory and my three 6-month co-ops were spent working on meaningful software projects at real companies. As a result, I was able to build up a solid background in Computer Science theory, didn't have to deal with the shortcomings of group class projects, and learned how to ship produ…

How does a strong co-op program work, and why do you think it's the best? Am from SEA university programs and I don't believe we have any of those. Would be awesome to understand more about the process.

Typically a student must maintain good academic standing and apply specifically to a co-op program to attend, and then an administrative department within the school will run a class on interviewing skills and resumé-building, before helping to coordinate a matching process between students and participating companies for work terms.

In many cases, large companies have special days where they'll come onto campuses to do interviews, and they may take a significant cohort of students each semester. There are often rules like, "you have 24 hours to respond to an offer and may only reject one offer" to ensure good faith been parties and high match percentages when some companies may be more prestigious or slow in their process.

Students then spend 3-16 months (this depends on the school's academic timing and the company's own structure -- 4 months in summer is most common) at a company and if it's a good company, they'll be given real work, strong mentorship, and deep integration into a team, and often students near graduation will get offers of employment directly at the end of their term.

There are also usually very tedious written work-term reports to fill out as a bureaucratically useful artifact of the process. They're typically expository essays of topics like "what I learned at $company", and everyone hates them.

Students will have 1-4 (usually 3) terms out in the real world over the course of their time in school, and graduate with meaningful practical skills and usually a taste of what's available to help assess opportunities.

It's on the whole a great system for a lot of people, particularly those who are using university to increase their employability.

Re: The Practice is not the Performance: Why project-based learning fails

#78
My own experience both as a learner and teacher is that project-based learning works great once you know the fundamentals and terribly otherwise.

Imagine you want to teach a cohort of incoming CS students to build simple web-server-with-database applications.

The "traditional" way to do this is to first teach them classes on web dev, OOP, and databases. Afterwards, you give them a software project.

I agree with "modernists" that if you just teach the three classes, but don't set a project at the end that integrates the knowledge, you end up with people who are really good at passing whatever style of exam you set them but can still be poor at actually building applications. That's one reason why recruiters care about your portfolio as well as your CV, I guess. It's also why universities, since time immemorial, have required individual projects and dissertations to get a degree - after teaching you the classes, for your "masterpiece" you work on a project.

The problem with making everything a project and assuming they'll learn or teach themselves the basics as and when they need them, is that without some understanding of what the building blocks are to build an application you end up bogged down in the details and developing by trial and error.

Real examples I've seen: spending the best part of a week on code to manually parse incoming HTTP headers (missing the fact that the server library already does that for you); writing custom code to serialise lists into a database field because you don't understand foreign keys (and of course breaking 1NF in the process); loading individual items for which you have an "id" by "SELECT *" on the whole table and then doing the filtering on the server, in O(N); and of course writing code that's vulnerable to both XSS and SQL injection left right and centre.

Even in a project unit where every student has a slightly different and very open-ended project, there's some common ground, e.g. "using prepared statements" for which there is such thing as a "one right way to do it" and my experience is that actually teaching this kind of thing in isolation is the only way that works.

Re: The Practice is not the Performance: Why project-based learning fails

#79

Earlier quoted context omitted.

I guess you're down-voted for both having a non-obvious opinion and phrasing it in a hostile way. You are correct however, but it's more understanable than you make out. Rather, the education system is designed to impart the skill of information recall -- which was essential to actually acquiring the target skills (ie., you needed to remember lots about chemistry before doing any). Remembering sentences about a skill…

School gives some a useful fiction, which is primary motivational. E.g. campus, classrooms, professors make you feel better about spending your time on some esoterica. The other benefit is subject gate keeping. Departments at least in STEM, don't offer pointless classes. An autodidact might not know what's valuable and might not always muster the energy to get through. They also might not have the integrity to give t…

School is useful insofar as its guiding and motivating, yes.

This is tutoring.

Everything else it does is a waste of time. That's where you'll find most of the actual time spent though, and it is certainly not an educational aim. The aim is to grade on recall. It is not to motivate, or guide.

Re: The Practice is not the Performance: Why project-based learning fails

#80
It's hard for me to agree with much of anything the author states here. This snippet is why:

> I don’t teach network programming and haven’t tested these specific ideas. But, in my specialty of software design and code quality, I use exercises built on similar principles all the time.

In the real world, learners do not come packaged with all the tools and links and resources they need to hammer out their solutions. Classrooms are great when you can have a textbook and pre-defined problems and such, but that is not now it works outside of the classroom (or the virtual classroom, as the case may be).

"Software design" is not an isolated component from network programming. It is that bridge between big data always getting piped in to (app / product / website) from the network, and how to help ( user / customer / other developer) where most engineers are hired to create value.

It is a good idea to attempt to design software with "code quality"; conceptually that sounds like a fantastic idea. But it is impossible to do without also factoring in a predictive element of how it will be used or accessed or even discovered over networks, stores, whatever.

Post reply on HN