a three-fold introduction to computer science
We have developed a new introduction to the computer science major, consisting of two courses, called Science of Computing 1 and Science of Computing 2. This sequence emphasizes balanced development of basic abilities in all three of computer science's fundamental methods of inquiry (design, theory, and empirical analysis), as opposed to the more traditional emphasis on programming and data structures. Science of Computing 1 introduces students to all three methods of inquiry, in the context of recursive algorithms and their mathematical and experimental analysis. Science of Computing 2 extends, and provides extensive practice in, all three methods. Both courses use a strongly hands-on approach to demonstrate the importance of, and interactions between, the three methods of inquiry. Preliminary results indicate that these courses successfully teach basic design, theory, and empirical analysis, and encourage students to continue studying computer science at a rate as high as or higher than that of traditional introductory courses.
computer science computation science developer sequence method empirical analysis analysis program data structures student context recursion algorithm experimentation practical use demonstrate interaction design theory