|
Dec 21, 2024
|
|
|
|
CS 161 Computer Science 1 Lecture Hours: 4 Credits: 4
The first course in a three-term sequence that introduces foundational concepts and practices in computer science and software engineering. Includes problem solving, algorithm design, data types, program and control structures, program documentation, coding style, engineering tools, language paradigms, and introduces complexity and computability. Explores programming as a fundamental tool of computer science, emphasizing professional engineering practices in software design, development, and testing.
Prerequisite: Placement into WR 115 (or higher), or completion of WR 090 (or higher); and placement into MTH 112Z or higher; or MTH 111Z or higher; and CS 160 , or GE 102 , or DATA 101 , or CIS 133SC ; or consent of instructor. (All prerequisite courses must be completed with a grade of C or better.) Student Learning Outcomes:
- Deconstruct complex problems into manageable sub-problems and write algorithms to solve these sub-problems.
- Read and explain algorithms written by others, apply and adapt algorithms, and reason about basic algorithmic correctness and complexity.
- Read and explain the effects of basic language operations and control structures (sequential, conditional, iterative, and sub-program calls), appropriately use control structures in the design of algorithms, and correctly implement those structures in the syntax of the language under study.
- Apply common techniques to debug logic errors and correct syntax errors.
- Read and explain the changing state of program memory objects and implement and modify programs that use primitive and structured memory objects (arrays, structures/records).
- Explain scope and lifetime as applied to memory objects and explain the difference between static and dynamic memory and types.
- Use existing components in programs; design, implement, and document components; and implement communication between multiple components within a program.
- Describe the language translation process and demonstrate the use of editors, compilers and debuggers to successfully translate high-level language source code into executable programs.
Statewide General Education Outcomes
- Gather, comprehend, and communicate scientific and technical information in order to explore ideas, models, and solutions and generate further questions.
- Apply scientific and technical modes of inquiry, individually, and collaboratively, to critically evaluate existing or alternative explanations, solve problems, and make evidence-based decisions in an ethical manner.
- Assess the strengths and weaknesses of scientific studies and critically examine the influence of scientific and technical knowledge on human society and the environment.
Content Outline
- Introduction to High Level Languages and Development Tools
- Console and File Input/Output
- Conditional Structures
- Repetition Structures
- Functions and Structured Programming
- Strings
- Arrays, Single and Multidimensional
- Structures/Composite Data Types
- Pointers and Dynamic Memory
|
|