CS 120: Computer Science I
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: Terence Soule
Prereq: Math 143 with a grade of "C" or higher, or CS 112 with a grade of "C" or higher; or sufficiently high ACT, SAT or Math placement test score to qualify for Math 170.
Textbook: A Project Based Introduction to C++, Soule, ISBN: 9781465260468, 2011, Kendal Hunt
Textbook URL: https://www.kendallhunt.com/store-product.aspx?id=263128
Prerequisites by Topic: Algebra skills, ready to begin calculus
Major Topics Covered
- Intro to computers and programming (1 hour)
- Basic program structure, variables, I/O (2 hours)
- Types: internal representation, base conversion (2 hours)
- Arithmetic expressions, operators, computer arithmetic (2 hours)
- Relational operators, conditional statements (if, switch) (3 hours)
- Iteration, looping, loop techniques (4 hours)
- Functions, parameter passing, return values (3 hours)
- Files, file I/O (2 hours)
- Arrays, 1-D, multidimensional (3 hours)
- Character strings (C-style and C++ string class ) (2 hours)
- Classes (4 hours)
- Social and Ethical Issues (2 hours)
- Pointers with Arrays, dynamic memory (4 hours)
- Recursion (3 hours)
Note: the primary Student Outcomes addressed in this course are (a), (c), (d), (f), (i), (j), (k). All are introduced.
- Make a description of a problem that has a straight forward computing solution, design, construct, and test a complete program that solves the problem (a).
- Work in a small group to solve a relatively simple computing problem (d).
- Understand the potential consequences of program failure (f).
- Understand some of the breadth of areas in which computer science is applied (j).
- Understand the expectations for academic integrity as they apply to software development (f).
- 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 .
- Use a C++ compiler (k).
- Use code libraries (k).
- Use a reference, including on-line references, to learn about the contents of a code library (i).
- 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 (c).
- Understand how to use type casting and how the compiler converts between types in mathematical / logical expressions (c).
- Create correctly formatted C++ expressions using the following operators: +, -, #, /, %, (), and [ ] (c).
- 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 (c).
- Read / write information from / to files (c).
- Create and call functions having arguments and return values. They will know when arguments should be passed by value or reference (c).
- Use and manipulate one and two dimensional arrays (c).
- Use and understand the use of recursion (c).
- Understand how to allocate memory dynamically using arrays and pointers (c).
- Use and manipulate singly-linked lists using pointers (c).
- 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 (c).