Introduction to Problem Solving and Programming
Total Credits: 3 cr
Course Coordinator: Terry Soule
Current Catalog Description: May be used as core credit in J-3-c. Intro to fundamental problem solving techniques using the computer; use of a programming language, structured programming concepts; use of fundamental data types, including arrays and structures; basic concepts of computer organization, editing, and program execution; programming lab in which the student solves problems.
Prereq: Math 108 or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 143.
Textbook: None. Materials will be provided as needed.
References: Additional course references will be available on the course web site.
This is a first course in computing and computer programming, for students who have no prior experience writing programs. Computer science and engineering majors and non-majors are equally welcome. For computer science and computer engineering majors, this course is a bridge to CS 120, Computer Science 1, which is fast-moving and demanding. Taking this course first will help them hit the ground running. For non-majors, this course provides the tools to make computers work for them, whatever their chosen profession. Students will use beginner-friendly computer languages to master the basic elements of computer programming and to become comfortable with programming computers to solve problems. Possible languages include Scratch (graphical programming language), Net Logo, Processing (Java-like), and Python.
Major Topics Covered
At the conclusion of this course, the student should be able to:
- Understand how data such as numbers and text are represented in a computer
- Translate a verbal problem description into an algorithm that can be programmed
- Write a computer program to execute the algorithm on a sample input
- Accept input data from source like a keyboard
- Process the data to solve a problem
- Print the results on a display devices such as a computer screen
- Implement conditional constructs (name varies with programming language):
- If, if-then, If-then-else
- Nested If, if-then, If-then-else
- For loops
- While loops
- Nested loops
- Use pre-built methods/functions/subroutines
- Write and use methods/functions/subroutines
- Verify the correctness of a program
- Methodically debug a program: observe behavior, diagnose and fix problems
- Save their work and access it later
- Keep track of old versions of their work so they can always go back to a working version