r22 - 05 Sep 2015 - 13:04:59 - RanLibeskindHadasYou are here: TWiki >  ModularCS1 Web  > WebHome

Welcome to the Harvey Mudd "Introduction to Computer Science" Course Page

This website provides resources for introducing computer science to a variety of audiences with different backgrounds and interests. The materials can be used "as-is" to teach a semester-long course or the constituent modules can be used to build new courses or integrate new concepts and applications into existing courses.

These materials were originally designed for use in a first-year college-level computer science course for science and engineering students (including prospective computer science students). To date, however, some of them have been adapted for use with high school students, humanities and social science undergraduate students, community college students, and information technology graduate students.

Background

Every first-year student at Harvey Mudd College, irrespective of their intended major, takes an introductory computer science course as part of the college's Core Curriculum.

Through 2005, the introductory computer science course was a traditional Java-based CS1 programming course. While students learned to program in Java, the course did not expose them to computer science as an intellectually rich discipline, its broad applications, and its impact on society. Thus, we redesigned the course into a new one that would:

  • Develop programming and problem-solving skills useful across engineering, mathematics, and the natural sciences;
  • Provide a coherent, intellectually compelling picture of computer science to all students; and
  • Capture the interests of a diverse group of students and encourage them to take additional courses in computing and pursue a computing-related major.

Our new course CS1 course, called "CS 5" at Harvey Mudd and nicknamed "CS for Scientists", has been taught since Fall 2006. Approximately 160 Harvey Mudd students take this course each fall. In addition, a substantial number of students (including non-science majors) from our sister Claremont Colleges enroll in this course each year, e.g., about 80 in fall 2012.

Some distinguishing features of this course are:

  • The course uses Python rather than Java. Python's relatively simple syntax permits us to spend more time teaching concepts and less time teaching syntax. Moreover, Python has relatively little "black box" syntax (e.g. "public static void main");
  • The course emphasizes recursion and functional-style programming concepts early and imperative and object-oriented concepts later in the course. This helps to "level the playing field" and allows students to write relatively powerful programs with relatively little syntax;
  • The course uses a variety of existing packages and libraries, providing students with the ability to write useful and compelling applications for web applications, scientific computing, computer graphics, among others;
  • In order to demystify the inner workings of a computer, the course includes a module on digital logic, the von Neumann architecture, and assembly language programming;
  • In order to provide students with a sense of some of the intellectual challenges in the field, the course gently exposes students to theoretical ideas including analysis of algorithms, intractability, and uncomputability; and
  • The course provides a wide array of application areas, some choices of problems, and a choice of capstone project at the end of the term.

There are currently three versions of this course:

  • CS 5 "Gold" (our school colors are Gold and Black) is designed for students with no prior computing background
  • CS 5 "Black" is designed for students with some prior computing background (e.g. self-taught programming or a high school programming course)
  • CS 5 "Green" is designed for students with an interest in the applications of computing to the biosciences

While the majority of our students take CS 5 "Gold", all three versions of the course provide the same foundational computing content and prepare students to enter our second computer science course. Rather than exploring additional computer science topics, CS 5 "Black" examines additional application areas (e.g. in cryptography and steganography and computer graphics) while CS 5 "Green" uses biology as its context rather than the broader context in the sciences and engineering that are used in CS 5 "Gold" and "Black".


Instructor Resources


Publications


Who's Adopted/Adapted This Course?

Several other schools are using these course materials to various extents. Among these are:

  • Boston University
  • Bucknell University
  • Stevens Institute of Technology
  • Northwestern University
  • University of California, Riverside
  • The Claremont Graduate University
  • Hong Kong University of Science and Technology
  • Glendale College has adopted a robotics-based version in a trial in summer 2012. If the trial goes well, they plan to adopt it for full deployment in Spring 2013 -- already done! Full course run both in Spring 2013 and Fall 2013.



Contact us!

To request additional resources, ask questions, or offer suggestions or comments, please write to any of us!


Acknowledgements

This material is based in part upon work supported by the National Science Foundation under Grant No. CNS-0939149. It is part of our CPATH project entitled "Modular CS1 from the inside out." A summary of this project can be found here.


With thanks to the many groups supporting the development and evolution of the course to date:

HMC_BGW_RGB_150dpi.png    600px-NSF_Logo.jpg    google.jpg    Intel.png    starbucks-logo.gif


Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r22 < r21 < r20 < r19 < r18 | More topic actions
 
Harvey Mudd College computer science
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback