CSCI S-1 Great Ideas in Computer Science with Java
This course is an introduction to the most important discoveries and intellectual paradigms in computer science, designed for students with little or no previous background. We explore problem-solving methods and algorithm development using the high-level programming languages Java and Scratch. Students learn how to design, code, debug, and document programs using techniques of good programming style in a Linux-based environment. This course presents an integrated view of computer systems, from hardware architecture and data communication systems through compilers and cryptography. We examine theoretical and practical limitations related to unsolvable and intractable computational problems, and the social and ethical dilemmas presented by such issues as software unreliability and invasion of privacy. Students may count only one of CSCI S-1, CSCI E-10a, or CSCI E-50 for degree credit.