CS 120

From CS Wiki
Jump to: navigation, search

Catalog Description

Fundamental programming constructs, algorithms, and problem solving, fundamental data structures, overview of programming languages, virtual machines, introduction to language translation, declarations and types, abstraction mechanisms, object-oriented programming. Three lectures and one 2-hr lab a week.

Type: Required for all Computer Science majors.

Total Credits: 4

Contact Hours: 3 lecture hours and a 2 hour lab per week

Course Coordinator: Bruce Bolden

URL: http://www2.cs.uidaho.edu/~rinker/cs120/ (Sections 1-3)

http://www2.cs.uidaho.edu/~jeffery/courses/120/syllabus.html (Sections 4-6)

Prereq: Math 108 or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 143.

Textbook: C++ For Everyone, Horstman, ISBN 0-470-38329-1, 2009, Wiley

Textbook URL: http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP001707.html

Prerequisites by Topic: Basic algebra skills.

Major Topics Covered

  1. Intro to computers and programming (1 hour)
  2. Basic program structure, variables, I/O (2 hours)
  3. Types: internal representation, base conversion (2 hours)
  4. Arithmetic expressions, operators, computer arithmetic (2 hours)
  5. Relational operators, conditional statements (if, switch) (3 hours)
  6. Iteration, looping, loop techniques (4 hours)
  7. Functions, parameter passing, return values (3 hours)
  8. Files, file I/O (2 hours)
  9. Arrays, 1-D, multidimensional (3 hours)
  10. Character strings (C-style and C++ string class ) (2 hours)
  11. Classes (4 hours)
  12. Social and Ethical Issues (2 hours)
  13. Pointers with Arrays, dynamic memory (4 hours)
  14. Recursion (3 hours)

Course Outcomes

  1. Make a description of a problem that has a straight forward computing solution, design, construct, and test a complete program that solves the problem. (c)
  2. Work in a small group to solve a relatively simple computing problem. (d)
  3. Understand the potential consequences of program failure. (e)
  4. Understand the expectations for academic integrity as they apply to software development. (e)
  5. Students will be able to document computer solutions to problems with well written reports in a standard format that emphasizes insight into the problem solving, not just the presentation of the output. (f)
  6. Use a C++ compiler. (i)
  7. Use basic system tools (e.g., top and time) to analyze a program's behavior with respect to the use of computer memory and CPU time. (i)
  8. Use code libraries. (i)
  9. Define C++ constants and variables of type char, int, float, and double. They will know the different characteristics of these data types and when each type should be used. (j)
  10. Understand how to use type casting and how the compiler converts between types in mathematical / logical expressions. (j)
  11. Create correctly formatted C++ expressions using the following operators: +, -, #, /, %, (), and [ ]. (j)
  12. Build programs units consisting of the sequence, selection, and repetition programming structures of C++. More specifically they will be able to determine under what conditions each of the following structures should be used: sequence: assignment statement; selection: if, if-else, if-else if-else if-else, and switch structures; repetition: for, while, and do-while structures. (j)
  13. Read / write information from / to files. (j)
  14. Create and call functions having arguments and return values. They will know when arguments should be passed by value or reference. (j)
  15. Use and manipulate one and two dimensional arrays. (j)
  16. Use and understand the use of recursion. (j)
  17. Understand how to allocate memory dynamically using arrays and pointers. (j)
  18. Use and manipulate singly-linked lists using pointers. (j)
  19. Create simple classes having data members and member functions. They will be able to read class header files and be able to call object member functions defined in the header files. (j)