|
||
Overview | ||
|
Over the course of the semester, students learn to write increasing complex programs using fundamental programming constructs such as if statements, loops and functions. They learn multiple ways to represent data inside a program such as with arrays, structures and abstract data types. They learn multiple ways for programs to interact with the outside world such as sending messages to and reading input from a user via the console, file I/O and time-permitting network I/O.
Students will learn that there are multiple ways to solve a given problem using programming. Students will learn to recognize the characteristics of a good solution and will learn techniques for designing good solutions meeting stated requirements or specifications. Student will also learn elements of good programming style and learn to appreciate how it impacts readability and maintainability. Students will learn basic techniques for testing and debugging the programs they write.
Student programs will be written in one modern C-family programming language (such as Java, C, or C++). However, students may be briefly exposed to syntax from other languages so that they can appreciate that the concepts they are learning occur in many programming languages.
In addition to writing increasingly complex programs, students also learn to read existing programs. Through exposure to existing programs, students learn to appreciate how programming is used to create the software they see in the real world.
Students will not become experts in computer programming but they will write many increasingly complex programs and receive a solid foundation in how computer programming produces the software that solves technological problems and satisfies human needs and desires.
This course assumes no prior knowledge of programming and therefore is accessible to interested students of all majors.
Official Course Description | ||
This course is an introduction to basic concepts of computer science, with emphasis on programming. Computer programming is to the study of computer science what writing is to the study of literature. It is a primary tool for implementing algorithms in computer science. Fundamental techniques for software design and implementation will be covered and these concepts demonstrated in a programming language like C++. Additional topics include top-down modular design, developing general-purpose software tools, procedural and data abstraction, algorithms, and an introduction to recursion and dynamic data structures. The course consists of three hours of lecture and a one hour computer laboratory session per week. Offered each semester. Requirement Designation: Programming. No prerequisites
Outcomes |
|
Textbook | |||
Walter Savitch, Problem Solving with C++, Addison-Wesley
|
|