Com S 227 - Introduction to Computer Programming Department of Computer Science, College of Liberal Arts and Sciences Course Content: ~~~~~~~~~~~~~~ This class is designed to explore what computer programming, and computing is all about. We will show you some fundamentals of the art of computer programming and help you explore computing through programming. You will develop a sense of style and aesthetics about programs, by reading and writing beautiful, elegant programs. You will learn some of the design principles for writing good programs. You will learn a number of programming idioms---standard ways of doing things. Finally we hope to share our sense of the joy and fun in computer programming. The course uses the programming language Scheme. Scheme is a dialect of LISP. Scheme is a very simple language, but it has the power to demonstrate many interesting ideas that would be difficult or impossible to examine in languages like C++, FORTRAN, Pascal, or BASIC. The idea is that you can explore more of programming and computing using Scheme. Goals: ~~~~~ In one sentence the essential goal is for you to discover what computing and computer programming have to offer. To do that in a way that is not superficial you should: * Be able to quickly and creatively solve small programming problems. * Use good style in writing, improving, and modularizing programs. * Understand the how to program at the right level of detail (data abstraction), how to do the same thing many times by breaking the process down into one step and other similar steps (recursion), how to deal with input and output (interactive programming), how to compute without making things in the computer change (functional programming), how to make things in the computer change (imperative programming), and how to prevent writing the same program over and over again (procedural abstraction). Audience: ~~~~~~~~ Beginning students in computer science, computer engineering, students contemplating a major in one of these, and others. The formal prerequisite is ``2 years of high school algebra and 1 year of high school geometry.'' In terms of ISU math placement tests, this means that when you take Com S 227 you should have placed out of Math 140. Also since Math 165 is a co-requisite of Com S 228, you should either be taking trigonometry (Math 141 or 142) when you take Com S 227, or have placed out of it. Satisfies What Requirements: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entry-level computer science course for Com S and Cpr E majors. Class Requirements: ~~~~~~~~~~~~~~~~~~ 3 hours lecture, 1 discussion/laboratory per week. The lectures are given by a computer science faculty member. In addition, there will be teaching assistants associated with the class who will meet discussion sections, answer questions, and help with the grading of homework and examinations. A substantial part of the course is practice in writing programs. Typically, there are 100 to 200 small programs to be written during the semester. These programs are an essential part of the course. Students per Section: 80-180 students is typical. ~~~~~~~~~~~~~~~~~~~~ Tutoring: ~~~~~~~~ Some tutors are available from the ISU tutoring office. Teaching assistants also typically hold office hours for the purpose of answering questions or helping with the debugging of programs. Examinations ~~~~~~~~~~~~ There will be several (typically 4 or 5) hour examinations, depending on the instructor, and a two-hour final examination. Grading: ~~~~~~~ Letter grade.