90 likes | 101 Views
Discover the key concepts, skills, and outcomes in computation that are vital for a well-rounded education. Explore algorithmic problem-solving and the application of standard algorithmic paradigms. No course is necessary, but everyone should have a basic understanding of computation.
E N D
or Whad’Ya Know? Mike Goldweber Xavier Univ. John Barr Ithaca College • What Should We All Know about Computation? Steve Cooper Purdue Univ. Henry Walker Grinnell College
What Would Your One Course Be? • What learning outcomes are most desired? • What competencies or technical skills should be mandatory? • What should any liberally (college) educated person know about computation?
Motivation • “Computing as Social Science,” M. Buckley (April ’09 CACM) • “Teaching Computing to Everyone,” M. Guzdial (May ’09 CACM) • “Beyond Computational Thinking,” P. Denning (June ’09 CACM) • “Are We Losing Our Ability to Think Critically,” S. Greengard (July ’09 CACM) • “Why Computer Science Doesn’t Matter,” M. Felleisen & S. Krishnamurthi (July ’09 CACM)
Audiences of Concern • Computer Scientists - our majors • “Hybrid Professionals” - our minors/double majors. • “...combine computing with other fields will increasingly be the new American jobs of the future.” - NYTimes (2/20/09) • Everyone else: - non majors • “A solid grounding in computing, experts say, promises rewards well beyond computer science. Most new jobs in the modern economy will be heavily influenced by technology.” - Robert Reich
Boundary Conditions • No course is necessary - there is nothing about computation everyone needs to know. • All should at least minor in CS.
Deep Intellectual Contributions • Algorithmic Problem Solving - Algorithmics • Harnessing abstraction to manage complexity • The automation of an algorithmic solution
Algorithmics • Algorithmic Problem Solving • ** An Algorithmic CS-Unplugged**
Brute Force algorithms • Greedy algorithms • Divide and Conquer algorithms • Dynamic programming algorithms • Problem reduction techniques • Recognition and handling of “hard” problems
Just as a liberally educated person should be versed in how a mathematician determines truth/solves problems (conjecture and proof), or how scientists do the same (reproducible experiments informed via the scientific method, she should be versed in how computer scientists do the same: Application of problem reduction and/or the use of standard algorithmic paradigms.