CS 141
Introduction to Computer Science I
 
 
Overview
 

This course is a first course in computer science with an emphasis on how computer programming is used to develop technical solutions to computational and information processing problems.

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
  • Students should learn fundamental principles of how to solve problems through computer programming.
  • Students should learn to use fundamental programming constructs such as if statements, loops and functions.
  • Students should learn to represent data inside computer programs using data types such as arrays, structures, abstract data types and objects.
  • Students should learn to write programs that communicate with the outside world in multiple says such as console I/O and file I/O.
  • Students will learn to use elements of a modern development environment such as a code editor, compiler and debugger. Typically this course uses a Linux environment and tools such as g++ and gdb.
  • Students will learn to recognize the characteristics of a good solution and will learn techniques for designing good solutions meeting stated requirements or specifications.
  • Students will be exposed to code in production quality software products.
  • Students will be exposed to the software lifecycle and to careers in software development and engineering.
  • Students will gain appreciation for the benefits and limitations of software solutions to real world problems.
  • 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.

Textbook
 

Walter Savitch, Problem Solving with C++, Addison-Wesley

 
 
Questions? Contact Jeanna Matthews