This answer is a summary of Freshman's First Language on the corporate wiki of Cunningham & Cunningham, Inc.
Fascinating question; I like your emphasis on objective criteria. We want freshmen to learn:
practical programming skills: how to UseTheDebuggeruse the debugger, how to use the profiler, how to solve large problems (a HighLevelLanguagehigh level language), how to put together large systems, how to break down problems (decomposition of problems), how to avoid writing complicated code, how to communicate to humans the intent behind an (often cryptic) series of executable statements.
decomposition of problems.
the fact that pre-written libraries exist for things like sort(), and how to use them -- i.e., the fact that it's not necessary to write everything from scratch.
criteria for a second programming language
Stuff we want students to learn, but perhaps this can wait for the second programming languagesecond programming language:
higher-level stuff: how to PickTheRightToolForTheJobpick the right tool for the job, how to use a compiler, structures, object-oriented programming, functional programming, logic programming, compiler design, composing and manipulating functions (in the Lisp/ML sense), concurrent and distributed programming,
low-level stuff: pointer arithmetic, computer architecture. memory management, stack frames, assembly programming, machine architecture, device drivers and operating system design (so the machine won't "seem like some frightening black box they can't penetrate")
EDIT: I find it disappointing that posting a summary of something that I wrote, in collaboration with many others, "may not be a legal post".
So I'm adding a more formal citation to my previous informal link, attempting to comply with fair use and other wiki copyright issues.
This answer is a summary of Freshman's First Language (Anon 2011) at the Portland Pattern Repository.
(Anon 2011) Many anonymous and various other authors. "Freshmans First Language". Portland Pattern Repository. September 27, 2011. http://c2.com/cgi/wiki?FreshmansFirstLanguage.