Problem Solving and Programming I
Revised: January 2019
Problem-solving and algorithm development using an object-based programming language;
functions, control structures, collections, and objects.
Prerequisite & Notes:
- Prerequisite or corequisite: Math 130 or Math Placement
- 4 Credit Hours
- Required for major, required for minor.
- Develop the ability to create non-trivial programs in an object-oriented programming
- Develop the ability to create programs that utilize functions, decision structures,
iteration, collections, class definitions, and objects.
- Understand and use good design principles, style, and documentation.
- Develop the ability to use a program debugger to identify and correct program errors.
John Zelle, Python Programming: An Introduction to Computer Science, Second Edition, Franklin Beedle & Associates Inc, 2010.
Grading procedures and factors influencing course grade are left to the discretion
of individual instructors, subject to general university policy.
Attendance policy is left to the discretion of individual instructors, subject to
general university policy.
- Introductory Concepts
- Integrated Design Environments (IDEs), simple output, variables, expressions, style,
documentation, and libraries.
- Function definition, return values, parameters, scope, lifetime, input, and output
- Control Structures
- Boolean operators (and, or, not) and decision structures (if statements, if/else statements,
nested if statements). Iteration using for loops, while loops, and the range function.
- Storing data with lists and strings. Topics include constructing, populating, accessing
(including with iteration), and modifying collections.
- Object oriented programming (OOP) design, creating classes and instance objects, utilizing
class attributes and methods.
- Advanced Programming Topics (Time Permitting)
- Nested iteration, multi-dimensional collections, dictionaries, and recursion.
- Testing (Time Permitting)
- Testing overview, unit testing, and test automation.