Login  Register

Collaborative programming / design

Posted by Victoria Hughes on Aug 01, 2010; 2:02am
URL: http://friam.383.s1.nabble.com/Query-about-rating-agencies-groups-tp5350015p5359969.html

Been watching this discussion with interest.
I've been teaching design as part of art for twenty-five years, and making things whose design has led to their inclusion in major museums.
I have a curriculum for design principles, and as with most of my work, it is deliberately non-media specific. 
> Meaning that the ideas can be  translated across media, fields, and disciplines.  ( Or by my standards they wouldn't be accurate or worth codifying / teaching: design is based ultimately on perception, cognition, etc) 
I'd be interested in working with a programmer to develop a specific design-oriented approach to languages and programming. Applying basic principles. 
Can't start till early September -
my new book and its launch happen first. 

But this is after all, an overlapping area of interest.

Hope to hear from someone; the conversations will be grand. 

Tory

Alaska?



On Jul 31, 2010, at 3:22 PM, Ed Angel wrote:

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" <[hidden email]> 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" <[hidden email]> 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 <[hidden email]> 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)  [hidden email]
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 <[hidden email]> 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" < [hidden email] [hidden email]>
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) 

[hidden email]

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

-----------------------------------

TORY HUGHES
Tory Hughes website
------------------------------------


============================================================
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