CS 161 Introduction to Computer Science I

Credit Hours: 4
Course Coordinator: Karla Fant
Course Description: Introduction to fundamental concepts of computer science. Problem solving, algorithm and program design, data types, control structures, and subprograms. This course is primarily designed for CS majors. Prerequisite: Mth 111.
Prerequisites: Math 111, Introductory College Mathematics.
Goals: To introduce students to the fundamental concepts of computing. Problem solving, the design of algorithms for solutions, and the translation of tested algorithms into the grammar of a high-level computer language are emphasized. Students are encouraged to develop a consistent programming style and a systematic method of internal program documentation.

This course is not just a programming or C++ class!

This course introduces the software life cycle along with the goals of systems design; reliable, modifiable, understandable, and efficient program development is emphasized. Students gain experience with design notations using data flow diagrams and structure charts. Computer ethics are introduced with an analysis of the nature and social impact of computer technology; this is emphasized using example cases and integrating ethical issues into at least one project and exams.

Upon the successful completion of this course students will be able to:

  1. Describe what computer science is as a degree program.
  2. Write an algorithm to solve a problem.
  3. Write simple programs in C++.
  4. Program using variables, loops, functions, arrays, external data files, and structures.
  5. Debug programs.
  6. Describe the intricacies that are involved in learning the syntax of a programming language.
  7. Describe the importance of desk checking due to logic errors.
  8. Describe the importance of clearly and precisely specifying the requirements of a problem.
  9. Develop a consistent programming style.
  10. Develop a systematic method internal program documentation.
  11. Gain experience with design notations using data flow diagrams and structure charts.
  12. Be prepared to analyze the nature and social impact of computer technology.
Textbooks: D.S. Malik, C++ Programming: From Problem Analysis To Program Design, Course Technology.
Russell Shackelford, An Introduction to Computing & Algorithms, Addison-Wesley.
References: Optional: Weekly Lecture Notes and Course Slides.
Major Topics: Computer components, hardware, software (3 hrs)
Problem solving, algorithm design (5 hrs)
Data types, declarations and operations (5 hrs)
Control structures (5 hrs)
Subprograms, parameter passing (5 hrs)
Survey of social and ethical aspects (2 hrs)
Sorting and searching (2 hrs)
Application software development (3 hrs)
Laboratory Exercises: A sample program will be used for beginning practice with the computer system, followed by five graded program assignments. (1.5 weeks for each assignment)
1. Learn the editor & compiler by typing in a supplied program (not graded)
2. Design and implement a program that will accept input from the terminal, process it, and print it.
3. Design and implement a program to use conditionals (if/then/else), loops (while or for), and exercise the use of various data types.
4. Design and implement a program to create and use functions.
5. Design and implement a program to use functions with parameters; external documentation analyzes the accuracy and privacy of information
6. Design and implement a program to use arrays, structures, and external data files.

CAC Category Credits Core Advanced
Data Structures
Algorithms 1.0
Software Design 1.0
Computer Architecture
Programming Languages 2.0

Oral and Written Communications: Every student is required to submit at least ___5__ written reports (not including exams, tests, quizzes, or commented programs) of typically _1-2_ pages.
Social and Ethical Issues: Computer ethics are introduced with an analysis of the nature and social impact of computer technology; this is emphasized using example cases and integrating ethical issues into at least one project and exams. Three lecture hours are dedicated to social and ethical implications of computing.
Theoretical Content: Students are introduced to the basics of computer architecture, algorithms, and fundamental C++ syntax.
Problem Analysis: None.
Solution Design: Students in CS161 becoming familiar with introductory programming concepts. Through this process, students are introduced to the concept of program design and algorithm development. This is stressed first early on in the term to introduce them to the concepts of design, and then again later in the term to reinforce its importance. Students gain experience by writing algorithms and designing software to solve the programming projects assigned in class.