...that would have been a good assignment. The prescriptiveness stops the students thinking about the problem and forces them to use inelegant solutions.Write a noughts and crosses game, expecting basic output like this:-
|X|
O|X|
|O|
Additional marks may be given for better functionality or display.
Junilu Lacar wrote:Whatever reasons there may be for lowering expectations, I just can't see any sane justification for giving programming exercises like this: https://coderanch.com/forums/posts/preList/675232/3162242#3162242
Campbell Ritchie wrote:Yes, that is a pretty dreadful assignment. Had the assignment said,
...that would have been a good assignment. The prescriptiveness stops the students thinking about the problem and forces them to use inelegant solutions.Write a noughts and crosses game, expecting basic output like this:-
|X|
O|X|
|O|
Additional marks may be given for better functionality or display.
Paul West wrote:Maybe this is a starting problem and the teacher is trying to keep it simple... Ya, I don't know.
But all these constraints actually make the assignment more difficult to complete. Unless is it something which is supposed to be marked by machine. . . .Paul West wrote: . . . Maybe . . . the teacher is trying to keep it simple . . .
...we are in the middle of preparations for a major activity that will not finish until possibly the middle of 2018. And, of course, any changes in content of courses or the program is a fairly long process and requires extensive consultation among faculty and students to ensure that there are no unintended consequences.
... Traditionally, a student's grade point average was one method which could be used to determine if the student was qualified in his particular field of study. Unfortunately, this is not always true, especially in the rapidly changing field of Computer Science. Even though a student has done well in a particular educational program, this does not guarantee that the educational program itself correlates to the needs of the industry. A situation such as this must and can be avoided through mutual procedures between education and industry. Strategies are discussed to eliminate the Computer Science/Industry misalignment, concerning faculty, advisory committees, curriculum guidelines, professional organizations, and student activities.
Junilu Lacar wrote:I got another email back from the faculty committee chair. I'm getting a sense that while he says they are open to discussion, they aren't very keen on the idea of changing their curriculum.
...we are in the middle of preparations for a major activity that will not finish until possibly the middle of 2018. And, of course, any changes in content of courses or the program is a fairly long process and requires extensive consultation among faculty and students to ensure that there are no unintended consequences.
I will try to keep at them but it's starting to look like I'm going to eventually end up in a dead end with these guys.
Junilu Lacar wrote:
@Paul, I'm starting to think it might be better to continue this conversation with you instead. Since you seem to be already on board with the idea of improving alignment between academia and industry, why don't we explore some ways we can get a more collaborative effort between the two sides going?
But this is something shouldn't be a one session thing I believe, it supposed to be an ongoing on daily basis used tool of CS lecturers / students - some universities here in UK release coursework materials, class examples, lab exercises via git repos, so you're forced to use it, which means when you leave college, you already have working experience rather than "somewhere heard about it". And it doesn't sound like a complicated thing to achieve to be a part of day-to-day studies.Paul West wrote:I have tried to add some (like Git), but there is definitely room for improvement.
Liutauras Vilda wrote:
But this is something shouldn't be a one session thing I believe, it supposed to be an ongoing on daily basis...Paul West wrote:I have tried to add some (like Git), but there is definitely room for improvement.
Junilu Lacar wrote:
This past fall, my wife and I went down to the University of Cincinnati with our daughter for a college visit. One of the things we really liked about UC was their co-op program, where students in certain programs like engineering, computer science, and business are required to spend entire school terms working in the industry, not as unpaid interns but as paid full-time employees. Their mandatory co-op rotations start in their second year. This is just one of many ways a better alignment between education and industry can be achieved but much more could be done in schools during those critical first and second years to give students a better foundation that can make their co-op experiences even more beneficial and rewarding. This is one of the articles I found yesterday: https://arxiv.org/pdf/0908.4353.pdf -- it lists a number of recommendations that I think are worth considering and discussing.
The other document I found was this: http://dl.acm.org/citation.cfm?id=800626 - I haven't read through the whole paper but I did find a preview that included this in its abstract ...
Paul West wrote:
Anyways, send me me ideas!
~Paul
One of the great benefits (we get at my company) is that we are allotted 40 hours of personal time to do volunteer work. The intent is to encouraged us to give back to our communities. ... This year, I'd like to use some, if not all, of my volunteer hours to give back to the young, up and coming professionals, as well as you, our colleagues in academia.
One thing that I always preach to developers on my team is that if they think there’s a problem in the system, they should write some failing tests to prove that those problems exist. This is based on what E.W. Dijkstra wrote: “Tests can only show the presence of bugs, never their absence.” In that spirit, I have been toying with the idea of organizing a workshop in which students and educators can interact directly with industry professionals. The workshop would be run like a Test-Driven Development programming session except that instead of looking for bugs and ways to refactor computer programs, we’d be looking for bugs and ways to improve the design of CS education programs.
The “tests” that we'd run in this workshop would involve students going through simulated interviews / auditions given by the industry professionals. Instructors can either observe or go through the interviews and auditions themselves; first hand experience is always more revealing.
My experience with professionals going through my interview/audition process has been dismal. In the past couple of years, filling a single position on our team meant that I would need to interview around twenty to thirty people. Only a fraction of the people interviewed would get invited to a second-round audition and then only the most suitable candidate, if there was one who managed to pass the audition, would be offered the position. This kind of selection process is becoming more common in the industry and I have had great success with it even though it takes a lot more time and effort than more traditional methods. In the last two years, I have had to fill five positions on our teams. That’s well over a hundred people and many hours of interviews and auditions.
A note about my interviews and auditions: I never ask questions or give exercises that involve any kind of esotery. My questions and exercises are simple and straightforward and require only a good handle of common programming practices and techniques. For example, I often use the canonical example for refactoring to a Composed Method as my audition exercise. See https://www.industriallogic.com/xp/refactoring/composeMethod.html. If you examine the code in that example, it’s very straightforward. Yet, many professionals are totally stumped by this exercise and many are unable to apply even one refactoring to that code much less write one good unit test to drive the refactoring. I found that appalling and disappointing because I believe the skills and techniques I’m looking for them to have/know should have been things they learned in school.
If the workshop shows that students are also incapable of getting through similar exercises, then I would consider that as compelling empirical evidence that students could benefit from putting more focus on learning some very fundamental concepts and techniques that will make them competitive and more attractive to prospective employers in the industry. These are the kind of gaps I’d like to discover so we can start looking into what re-alignments need to be made between education and industry needs, a discussion of which would also be part of the workshop.
...
Thoughts?
Paul West wrote:It would be good to focus on the principles behind these technologies and leave the language/syntax to whatever is big at the time...
Junilu Lacar wrote:I was actually able to find some literature that I can cite. I did a search on research into misalignment of industry and academia in Computer Science instruction and found several articles. One article even summarizes the issue quite well: "However, the gap that exists between what is taught at school and the skills required to perform on a job is so wide that a high percentage of young graduates are said to be unemployable for lack of needed skills that would make them profitable for any employer."
Scott Reid wrote:I think you are falling into the trap of "the jaded pro". You are forgetting the backup, the assistance, the advice and direction, the sheparding which you received when you first stepped out from the University onto the beginning of the road of your professional career.
Scott Reid wrote:
A: The method of teaching isn't wrong! That's been proven conclusively for the last 2000 years! Otherwise we still wouldn't have fire!
I think “proven conclusively” is a bit of an exaggeration; the studies I have seen on the effectiveness of teaching have been disagreed with. Some have had poorly‑defined endpoints, and a few have been withdrawn for being totally bogus. The bit about fire looks like a red herring.Scott Reid wrote:. . .
A: The method of teaching isn't wrong! That's been proven conclusively for the last 2000 years! Otherwise we still wouldn't have fire!
That is actually the opposite of what Junilu has said; he is complaining about not having such support when he started.B: Expecting people to walk into a programming career and be instantly capable of coding whatever is handed to them without needing help, assistance or further information is utterly unreasonable!
That is how I was taught Java®, and we all stuck it out to the end of the course.More still, trying to introduce OOP concepts before teaching the basics may well produce more capable and knowledgeable programmers! If so, it will only produce 2 per class of 30! The rest will have quit in the first week!
Some people become competent programmers and some don't; we can see the difference pretty quicklyAs for the newbies on here! Myself included! Most of them are studying programming in their own time, for their own desire!
Scott Reid wrote:I stand whole heartedly behind my belief that the job of academia is to give it's students a good and broad grounding in their chosen subject!
It is then up to industry to mould those graduates into the kind of employees they need !
...the job of academia is to give it's students a good and broad grounding in their chosen subject! ...
...The disagreement seems to be whether academia actually does a good job at that. All I'm saying is that many in academia can do better...
...academia can do better..
[Arguing with an engineer is a lot like wrestling in the mud with a pig. After a few hours, you realize that he likes it] [Learn code first? no we apply to learn programming(or also)first thanks]
Harry Kar wrote:
Dunno why but out there are lot of textbooks and places that dissect code and all people talk about code and code write down code but very few of them if any talk about software design that's a shame guys why that?
Now about OOP and programming language and design: I'm convinced the student starting from zero to be capable to do associations just from the first lessons have to learn concurrently those three topics(with more weight on design)
Scott Reid wrote:...Programming is a branch of computer science, not an entire subject on it's own! ...
... You are forgetting the backup, the assistance, the advice and direction, the sheparding which you received when you first stepped out from the University onto the beginning of the road of your professional career.
...but you had these questions once and someone took the time to sit with you and give you their advice!
That's how people learn! From the bottom up, in small manageable chunks, over time! Then in small, manageable chunks over time, over many years and through different companies!
..My main point in my post above was that;
A: The method of teaching isn't wrong! That's been proven conclusively for the last 2000 years! Otherwise we still wouldn't have fire!
B: Expecting people to walk into a programming career and be instantly capable of coding whatever is handed to them without needing help, assistance or further information is utterly unreasonable!
More still, trying to introduce OOP concepts before teaching the basics may well produce more capable and knowledgeable programmers! If so, it will only produce 2 per class of 30! The rest will have quit in the first week!
As for the newbies on here! Myself included! Most of them are studying programming in their own time, for their own desire!
[Arguing with an engineer is a lot like wrestling in the mud with a pig. After a few hours, you realize that he likes it] [Learn code first? no we apply to learn programming(or also)first thanks]
Junilu Lacar wrote:...That is a very astute observation, Harry...
I suspect a big part of the reason for this is that many people still view programming and design as separate activities...
[Arguing with an engineer is a lot like wrestling in the mud with a pig. After a few hours, you realize that he likes it] [Learn code first? no we apply to learn programming(or also)first thanks]
Consider Paul's rocket mass heater. |