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" <[email protected]> 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"
<[email protected]> 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 <[email protected]> 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) [email protected]
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 <[email protected]
> 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:[email protected]
> [email protected]>
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)
[email protected]
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
[email protected]
Tory Hughes website
Facebook|Tory Hughes Art
------------------------------------
============================================================
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