Computer programming is one of the fundamental tools for computer scientists.  CS 314H, which you will take during your first semester in the Turing Scholars Honors Program, will teach programming concepts found in a traditional second course in programming (data structures, program design, algorithms) and serve as a vehicle for exploring broader issues in computer science.

"The Process of preparing programs for a digital computer is especially rewarding, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music."
Donald Knuth, 1974 Turing Award Winner, Preface to The Art of Computer Programming

"Having surveyed the relationships of computer science with other disciplines, it remains to answer the basic questions: What is the central core of the subject?  What is it that distinguishes it from the separate subjects with which it is related?  What is the linking thread which gathers these disparate branches into a single discipline?  My answer to these questions is simple – it is the art of programming a computer.  It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex.  It is the art of translating this design into an effective and accurate computer program."
C. A. R. Hoare, 1980 Turing Award Winner

CS 314H assumes one semester of programming.  The language used in the course is Java.  If you have had experience programming, but not with Java, you will find it useful to write some Java programs this summer.  If you have never programmed before, trying to learn on your own is a decidedly difficult task.  It is often easier to learn how to program in a structured environment like an organized class rather than trying to teach yourself.

Getting Started with Java

If you have had programming experience and want to learn Java here are some helpful resources.