Comments on: Computer Science at Waterloo: the new Scheme of things http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/ Programming, Education, Computer Science Wed, 30 Sep 2020 08:31:44 -0400 http://wordpress.org/?v=2.8.4 hourly 1 By: Brandon http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-123319 Brandon Wed, 30 Sep 2020 08:21:34 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-123319 1 1

]]>
By: Andrew Whaley http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-109956 Andrew Whaley Sun, 09 Nov 2008 21:28:17 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-109956 I'm an experienced software engineer in industry and whilst I sympathize with the view that students should learn a 'commercial' language like Java, I disagree. I work with many Java developers who are reasonably competent in Java but can't program to save their lives ! They may know the syntax and the API's but they don't know the basics like abstract data types and recursion. It's far better that they learn the basics using any language (and Scheme is better than most) before they learn Java - it's only syntax and API's and doesn't take long to learn. Besides, who's to say that Java will still be widely used 5 years from now - I for one think that it's had it's day. I’m an experienced software engineer in industry and whilst I sympathize with the view that students should learn a ‘commercial’ language like Java, I disagree.

I work with many Java developers who are reasonably competent in Java but can’t program to save their lives ! They may know the syntax and the API’s but they don’t know the basics like abstract data types and recursion.

It’s far better that they learn the basics using any language (and Scheme is better than most) before they learn Java – it’s only syntax and API’s and doesn’t take long to learn.

Besides, who’s to say that Java will still be widely used 5 years from now – I for one think that it’s had it’s day.

]]>
By: Prabhakar Ragde http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103740 Prabhakar Ragde Fri, 18 Apr 2008 23:21:30 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103740 I think this link: http://www.cs.uwaterloo.ca/prospect/placement.shtml plus the course descriptions linked at the bottom of that page is as close as it gets to a formal description of the changes. The Web pages for the new courses will come on stream at some point (135 and 136 already exist, 145 is under development). The natural place to discuss Java is in CS 246, but I don't know how its instructors will deal with the changes. There is a subcommittee looking at changes to the second-year curriculum. I think this link:

http://www.cs.uwaterloo.ca/prospect/placement.shtml

plus the course descriptions linked at the bottom of that page is as close as it gets to a formal description of the changes. The Web pages for the new courses will come on stream at some point (135 and 136 already exist, 145 is under development).

The natural place to discuss Java is in CS 246, but I don’t know how its instructors will deal with the changes. There is a subcommittee looking at changes to the second-year curriculum.

]]>
By: Fady Samuel http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103738 Fady Samuel Fri, 18 Apr 2008 23:13:36 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103738 @Prabhakar: Ohh I didn't realize stream 4 no longer exists. That seems reasonable. Does Computer Science at Waterloo still introduce Java to the students at some point? Concepts are very important of course, but so is code. Is there an outline somewhere of all the changes in the first and second year curriculum? Thanks. @Prabhakar:

Ohh I didn’t realize stream 4 no longer exists. That seems reasonable. Does Computer Science at Waterloo still introduce Java to the students at some point? Concepts are very important of course, but so is code. Is there an outline somewhere of all the changes in the first and second year curriculum? Thanks.

]]>
By: Tony http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103725 Tony Fri, 18 Apr 2008 14:33:32 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103725 @Fady -- I personally doubt that having classes be taught in Scheme will impair students' co-op employability. I think so because Computer Science classes are about concepts (algorithms, data structures, proofs, math (being a UW student yourself, you should know how much Math goes into the program)), Java was simply a tool used to express some of the ideas, but it was never taught as a language. Really, one should be looking at colleges if they are after a Java-shop. A frosh student, having taken no computer science in high school, but having done a term (or even two) of Java based CS classes, is will not be significantly more qualified for co-op jobs, than a student of similar background having spend as much instructional time with Scheme. By the 2nd year, having also seen C and Python, the "lack" of Java will be even less significant. To quote Robert, from above in the comments: <blockquote><p>[Scheme] has actually helped me on my co-op interviews ... . Interviewers commented on seeing scheme on my resume, and they were pleased with the answers I gave.</p></blockquote> @Fady — I personally doubt that having classes be taught in Scheme will impair students’ co-op employability. I think so because Computer Science classes are about concepts (algorithms, data structures, proofs, math (being a UW student yourself, you should know how much Math goes into the program)), Java was simply a tool used to express some of the ideas, but it was never taught as a language. Really, one should be looking at colleges if they are after a Java-shop.

A frosh student, having taken no computer science in high school, but having done a term (or even two) of Java based CS classes, is will not be significantly more qualified for co-op jobs, than a student of similar background having spend as much instructional time with Scheme. By the 2nd year, having also seen C and Python, the “lack” of Java will be even less significant.

To quote Robert, from above in the comments:

[Scheme] has actually helped me on my co-op interviews … . Interviewers commented on seeing scheme on my resume, and they were pleased with the answers I gave.

]]>
By: Prabhakar Ragde http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103724 Prabhakar Ragde Fri, 18 Apr 2008 14:24:04 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103724 Fady: By coincidence, notification of your post arrived as I was preparing a presentation to co-op coordinators about the changes. Co-op has representation on the curricular bodies at faculty and university levels and has no objections to the new curriculum. Here's a good recent blog post addressing the general issue: http://www.amazon.com/gp/blog/post/PLNK1VEO3LPERI26L Note that stream-4 goes away as of this fall, so that all Math/CS students will have experience with C or Python before their first work term. Fady: By coincidence, notification of your post arrived as I was preparing a presentation to co-op coordinators about the changes. Co-op has representation on the curricular bodies at faculty and university levels and has no objections to the new curriculum. Here’s a good recent blog post addressing the general issue:

http://www.amazon.com/gp/blog/post/PLNK1VEO3LPERI26L

Note that stream-4 goes away as of this fall, so that all Math/CS students will have experience with C or Python before their first work term.

]]>
By: Fady Samuel http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103719 Fady Samuel Fri, 18 Apr 2008 07:16:30 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103719 I'm a 4th year University of Waterloo Computer Science student but I have great interest in this new curriculum. My sister is planning to start computer science at UW in the Fall. My concern with teaching Scheme in first year without touching Java/C is that it may significantly hurt co-op employment rates. The hottest two languages used by the industry right now are Java and C/C (plus Python to a lesser degree). By completely disregarding the top languages, are you not effectively hurting students' chances at good co-op positions? Will there still be a Java course in first year for those who prefer that? I have nothing against Scheme, I'm all for learning multiple language paradigms, but I'm greatly concerned about co-op employability. I’m a 4th year University of Waterloo Computer Science student but I have great interest in this new curriculum. My sister is planning to start computer science at UW in the Fall. My concern with teaching Scheme in first year without touching Java/C is that it may significantly hurt co-op employment rates. The hottest two languages used by the industry right now are Java and C/C (plus Python to a lesser degree). By completely disregarding the top languages, are you not effectively hurting students’ chances at good co-op positions? Will there still be a Java course in first year for those who prefer that?

I have nothing against Scheme, I’m all for learning multiple language paradigms, but I’m greatly concerned about co-op employability.

]]>
By: Brad Lucier http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103479 Brad Lucier Tue, 08 Apr 2008 04:51:59 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103479 The choices in teaching programming using Scheme are not limited to SICP or HTDP. I prefer the approach by Manis and Little at UBC as developed in "The Schematics of Computation"---I call it "SICP for mortals" because it has the big ideas of SICP but presented in a more manageable way. The choices in teaching programming using Scheme are not limited to SICP or HTDP. I prefer the approach by Manis and Little at UBC as developed in “The Schematics of Computation”—I call it “SICP for mortals” because it has the big ideas of SICP but presented in a more manageable way.

]]>
By: Gary Baumgartner http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103167 Gary Baumgartner Sat, 29 Mar 2008 02:06:12 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103167 Addressing the statement above: "The first goal in designing any computer language is minimizing parenthesis." "Scheme fails miserably in this respect." I, in a sense agree with the first statement. However, the second statement is false, despite how incredibly obvious it seems at first glance! Scheme code does use more parentheses per line than code in more common languages, but (except for small programs) has fewer lines of code. A student of mine just wrote a program in Scheme, and it turned out another experienced Python programmer was writing a program for a similar task. We counted the number of parentheses in each, and the Python program had many more (not to mention all the other punctuation), because it required many more lines of more repetitive code. In fact the *comments* in the Python code looked more similar to the Scheme code. Addressing the statement above:

“The first goal in designing any computer language is minimizing parenthesis.”
“Scheme fails miserably in this respect.”

I, in a sense agree with the first statement.

However, the second statement is false, despite how incredibly obvious it seems at first glance! Scheme code does use more parentheses per line than code in more common languages, but (except for small programs) has fewer lines of code.

A student of mine just wrote a program in Scheme, and it turned out another experienced Python programmer was writing a program for a similar task. We counted the number of parentheses in each, and the Python program had many more (not to mention all the other punctuation), because it required many more lines of more repetitive code. In fact the *comments* in the Python code looked more similar to the Scheme code.

]]>
By: Grant Rettke http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103131 Grant Rettke Wed, 26 Mar 2008 00:21:15 +0000 http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103131 PT brought up a critical question: is your goal to learn how to program, or to learn a particular language? If you want to learn how to program, it takes time, practice, good material, a good medium (programming language), and hopefully you've got a good teacher. If you want to learn a particular language, it takes one book. There is a big difference. Don't confuse the two! PT brought up a critical question: is your goal to learn how to program, or to learn a particular language?

If you want to learn how to program, it takes time, practice, good material, a good medium (programming language), and hopefully you’ve got a good teacher.

If you want to learn a particular language, it takes one book.

There is a big difference. Don’t confuse the two!

]]>