Greetings from a wet Alaska.

I agree with Dave and I¹d like to add a few more comments about languages,
programming and design that are colored by the difficulties of teaching
computer science and engineering in large universities.

Most academic computer scientists would agree with Owen about the advantages
of teaching the first course using Scheme. Many schools tried it and it was
a failure. The prime reason was that almost no schools have a student body
as good or as uniform as MIT. In a typical state university, the first
programming course known as CS 1 is taught to a very diverse group,
including students who intend to major in CS, all branches of engineering,
math, business and  a lot of the sciences. Most of them will never take
another CS course so it¹s not clear that a single Scheme course is the best
for all of them. What makes things more complex in NM (and I think this is
typical of other states) is that you have very few students who start in a
program and stay in it for four years. When you get to the second class,
almost half the students took CS 1 elsewhere (CNM, some other community
college, NMSU, NMT). If UNM were to use Scheme, it¹s highly unlikely that
any of the other would follow and in the case of most community colleges
would probably have great difficulty in staffing such a course.

What further complicates the picture is the state mandates articulation.
Hence, each school must accept the CS 1 that the others teach and cannot
require students who transfer in to retake CS 1. This is a huge problem for
students even when the two CS 1 languages were C++ and Java. It would be
impossible if one school were using Scheme and not the others. At UNM, we
don¹t list a specific language as a prerequisite for the second CS class
which is taught in Java. However, most of the CS majors take the first class
is in Java although there is a python section. The engineers mostly take a
first course using the programming language in Matlab. The computer
engineers take the Java version of CS 1 and then quickly switch over to C
and C++.

Even the better schools are driven somewhat by the market. But I think once
you see why Scheme (or equivalent) doesn¹t work, there are no perfect
choices. The market push for Java is there in some industries and not
others. A lot of the market still wants C++ but it is a terrible teaching
language (and a lot of industry sees C++ as the lesser of evils, not as the
language they would like to have). Although some schools focus on a single
language others give superficial knowledge in many.

The accrediting boards were aware of these issues and rather than requiring
a particular language in CS 1, defined the requirements as proficiency in
one language and familiarity with at least one other paradigm. As well
intentioned as this may be, it¹s not clear that is has worked out as hoped.
At UNM, students become proficient at Java, learn both C and Scheme at the
second level and eventually study logic and functional programming. But in
the end most of them become proficient in the language they started which in
the case of Java can be a problem for them in the job market depending on
the industry and to working in areas such as graphics, game technology and
CAD. But if we still used C++, they would have problems with other areas and
other industries.

To get back to some of the issues Owen and David raised, the goal should be
to teach computational thinking and design. If that is the case, starting in
Scheme would be better than what we do now. When we teach it as a second
level course, it doesn¹t really get used nor are the ideas adequately
reinforced by later courses. It¹s an aspect of a much larger problem that is
a focus of those of us concerned with the problems the country is facing
with STEM education, namely the replacement of fundamental ideas of computer
science with a focus on what is often called computer literacy. In higher
ed, it manifests itself as stressing proficiency in some programming
language rather than in the underlying principles. In K-12 education, where
the problem is far more serious, computer science ideas have pretty much
vanished from the curriculum and from teacher training. In NM, very few
schools even teach a CSs course. In those that do, the course is designed to
prepare students for the AP Computer Science exam which has become a Java
proficiency exam. That presents computer scientists with a difficult dilemma
in that while they are opposed to the course, they are hard pressed to
oppose the only ³computer science² in the schools.

Finally there is the design question. I spent a lot of time my last few
years at UNM trying to deal with design in the CS curriculum. At the college
level there are serious issues of whether you can teach design and if
colleges and universities have faculty who can do it. A more serious issue
is the siloing that characterizes most universities. Engineering schools
tend to think they own design but the reality is that design has gotten
crowded out of the engineering curriculum by the increase in the new
material that most departments feel they have to teach. Accrediting agencies
now require capstone courses which try to get some design back in the
curriculum but it¹s not the same as having design integrated throughout the
curriculum. In my experience the one school that truly understands design
and is good at teaching it is Architecture. Studio artists are also very
good at design and problem solving but at UNM, the College of Fine Arts
doesn¹t see design has part of their curriculum. It will be interesting to
see what happens with the new College of Santa Fe. As for CS, it always
seemed to me that design was fundamental to any programming course and to
our overall program. But that view met vociferous objections from the
engineering faculty who believe that ³design² is what separated engineering
from sciences including computer science.

Sorry for the ramble. The sun just came out and I¹m going back on vacation.

Ed

On 7/29/10 1:45 PM, "Prof David West" <profw...@fastmail.fm> wrote:

>  Owen,
>  
> Speaking as an academic, I agree with you that too many schools believe they
> need a single language and are driven by pure market conditions - i.e. what
> language will look best on a graduate's resume.
>  
> In my program we require students to demonstrate proficiency (write thousands
> of lines of code) in four languages: a scripting language, a procedural
> language, a declarative language, and an object language (and no, Java is not
> even close to being an object language). [We have not decided if functional is
> a fifth group or a variation on procedural or declaritive as far as the
> "thinking paradigm" required.]   Which language is chosed within those groups
> is mostly irrelevant, except as it best suits a specific problem domain (.e.g
> C or C++ for telecom).
>  
> Interestingly, the only empirical research of which I am aware as to what is a
> Good Answer - was done at Carelton (in Canada):  Their research showed that
> students learning Smalltalk as their first language picked up a second
> language (did not matter if it was procedural or declarative) about 50% faster
> than if the first language was Pascal (remember that one?) - and Pascal was
> created specifically to be a good teaching language.  Conversely if students
> took a procedural (C, Java, Pascal) as their first language, it took them
> almost 100% longer to become proficient in Smalltalk and about 60% longer to
> become proficient in Lisp.  COBOL was an interesting anomaly - If COBOL was
> the first language, Smalltak came much easier, but Lisp was still a big
> cognitive leap.
>  
> The Carleton research also showed that Smalltalk-First led to a deeper
> understanding of programming in general.
>  
> The biggest drawback to Smalltalk-First arises from the fact that, in
> Smalltalk, you never use things like nested or Boolean IFs and no loops and
> cyclomatic complexity was an order of magnitude lower on average - so moving
> to a different language almost always felt like descending into swamp of
> tedious and verbose complications.
>  
> [[ While I am being opinionated - Design (decomposition and distribution of
> knowledge and behavior), not programming language, is the real key - proper
> design makes the coding almost trivial.  (I am in the midst of a hot and
> heated argument with my colleagues in the Software Craftsmanship (they are all
> about code and programming) movement about this right now - and doing a
> presentation to about a hundred professional developers in Mpls next week. ]]
>  
> dave west
>  
>  
>  
> On Thu, 29 Jul 2010 10:28 -0600, "Owen Densmore" <o...@backspaces.net> wrote:
>> I think the key problem is that schools feel they need to choose just ONE
>> language.  And it has to be Important and Liked By Industry and Used By Other
>> Classes.
>>  
>> MIT has a different approach: use Scheme for introductory classes. It's
>> little used outside of schools, but great for teaching purposes.
>>  
>> There is no Good Answer, because there are so many different languages for a
>> good reason.  Consider PHP. It became the web site language because the only
>> other choice at the time seemed to be Java, which is Too Hard. But you'd be
>> mad to consider it for building scientific visualization apps (or nearly
>> anything outside of the web).
>>  
>> Consider Processing, our 3D programming language.  It is Basic Java, i.e.
>> Java w/o many of it's irritations. Again, built by MIT, it is specialized to
>> be of use to designers.  Ditto NetLogo for modeling.
>>  
>> So any hip school should simply follow the MIT model, and forget about The
>> Right Language.  Instead, simply teach Programming, possibly with several
>> languages!  
>> 
>>     ---- Owen
>>  
>>  
>> I am an iPad, resistance is futile!
>> 
>> On Jul 28, 2010, at 4:22 PM, Edward Angel <an...@cs.unm.edu> wrote:
>>  
>>  
>>> I'd worry about about how to use that number. The prevailing view in both
>>> academic departments and industry is that Java is on its way out. For the
>>> kinds of things that Java is good at, scripting languages have advanced so
>>> much that they are replacing Java. For large scale applications, industry
>>> never used Java.
>>>  
>>> It's a major problem for schools that have their whole curriculum in Java.
>>> When their students graduate they find the job opportunities can be very
>>> limited if they don't have experience with other languages like C++. For our
>>> students that are not CS majors but need to know some programming, the
>>> demand ranges from C++ and Matlab for engineering majors to python for the
>>> animation industry with a lot movement towards java script.
>>>  
>>> It's interesting that all the feedback I get from industry is that they
>>> (like us academics) hate C++ but they have yet to find a suitable
>>> replacement for large scale programming jobs such as developing and
>>> maintaining a game engine.
>>>  
>>> Ed
>>> __________
>>> 
>>> Ed Angel
>>> 
>>> Chair, Board of Directors, Santa Fe Complex
>>> Founding Director, Art, Research, Technology and Science Laboratory (ARTS
>>> Lab)
>>> Professor Emeritus of Computer Science, University of New Mexico
>>> 
>>> 1017 Sierra Pinon
>>> Santa Fe, NM 87501
>>> 505-984-0136 (home)  an...@cs.unm.edu
>>> 505-453-4944 (cell) http://www.cs.unm.edu/~angel
>>>  http://artslab.unm.edu
>>> http://sfcomplex.org
>>> 
>>> On Jul 28, 2010, at 1:52 PM, Roger Critchlow wrote:
>>> 
>>>> ACM Technotes reported today:
>>>>  
>>>>> Java/J2EE is the programming and developing skill in most demand with more
>>>>> than 14,000 open job positions nationally, according to a July report from
>>>>> IT job board Dice.
>>>>  
>>>> -- rec --
>>>>  
>>>> On Wed, Jul 28, 2010 at 1:39 PM, Grant Holland <grant.holland...@gmail.com>
>>>> wrote:
>>>>> Dave,
>>>>> 
>>>>> What is your opinion about certification in the Java world at this point?
>>>>>  
>>>>> Grant 
>>>>>  
>>>>> 
>>>>> 
>>>>> Prof David West wrote:
>>>>>> 
>>>>>> Pamela,  my replies do not seem to get posted to the list, so I included
>>>>>> your direct address.
>>>>>> 
>>>>>> There is no rating or accrediting body for certifications.  The ACM/IEEE
>>>>>> could and perhaps should do this, but they have a conflict of interest
>>>>>> in that they offer their own set of certifications.
>>>>>> 
>>>>>> You are absolutely correct that the quality of the programs varies
>>>>>> significantly - some vendor certifications, like Cisco's, have a very
>>>>>> good reputation and they also certify trainers.  Others, like Scrum
>>>>>> Master are hideous jokes (I am a "Certified Scrum Master).  Microsoft
>>>>>> Certs are in the middle, good except when the right answer conflicts
>>>>>> with Microsofts answer in which case right loses to might.
>>>>>> 
>>>>>> A lot of universities, especially two-year schools offer courses that
>>>>>> are, in effect, certification test preparation.
>>>>>> 
>>>>>> If you let me know what certifications you are most interested in, I
>>>>>> might be able to provide some direction.
>>>>>> 
>>>>>> dave west
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Wed, 28 Jul 2010 12:00 -0600, "Pamela McCorduck" <
>>>>>> <mailto:pam...@well.com> pam...@well.com>
>>>>>> wrote:
>>>>>>   
>>>>>>> 
>>>>>>> Does there exist a rating agency or group that rates IT certification
>>>>>>> programs the way several such groups exist for colleges and
>>>>>>> universities?
>>>>>>> My son-in-law wishes to upgrade his skills, but we're very concerned
>>>>>>> that
>>>>>>> some of the programs are nothing but fancy scams.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> 
>>>>>>> Pamela
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> "God keep me from ever completing anything. This whole book is but a
>>>>>>> draft--nay, but the draft of a draft. Oh, Time, Strength, Cash, and
>>>>>>> Patience!"
>>>>>>> 
>>>>>>>    Melville, "Moby Dick"
>>>>>>> 
>>>>>>> 
>>>>>>> ============================================================
>>>>>>> FRIAM Applied Complexity Group listserv
>>>>>>> Meets Fridays 9a-11:30 at cafe at St. John's College
>>>>>>> lectures, archives, unsubscribe, maps at http://www.friam.org
>>>>>>> 
>>>>>>>     
>>>>>> 
>>>>>> ============================================================
>>>>>> FRIAM Applied Complexity Group listserv
>>>>>> Meets Fridays 9a-11:30 at cafe at St. John's College
>>>>>> lectures, archives, unsubscribe, maps at http://www.friam.org
>>>>>>   



-- 

Ed Angel

Chair, Board of Directors, Santa Fe Complex
Founding Director, Art, Research, Technology and Science Laboratory
(ARTS Lab)
Professor Emeritus of Computer Science, University of New Mexico

1017 Sierra Pinon
Santa Fe, NM 87501
505-984-0136 (home)  
505-453-4944 (cell) 

an...@cs.unm.edu

http://www.cs.unm.edu/~angel
http://artslab.unm.edu
http://sfcomplex.org
 



============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to