This course provides experience with one fundamental approach to problem solving and begins study of a second. The control of robots serves as an application theme as part of a solid introduction to imperative problem solving. Fundamental concepts include top-down design, common algorithms, assertions, program organization, control structures, functions, arrays, and linked lists. Using the C programming language as a vehicle for precise thinking and careful communication of problem solutions, the course explores low-level perspectives of computing, including the representation of data, pointers, and memory management. The course also introduces selected insights for the development of large-scale programs using object-oriented problem solving and the Java programming language. In addition, problem sets suggest a range of applications beyond the course’s robotic application theme. This course is appropriate for all students who want to create software and have little or no prior computing experience.
Format: Lectures/labs. Evaluation will be based on weekly assignments, final programming projects, and examinations.
Prerequisites: No prerequisites, except for the standard prerequisites for a (Q) course. Note that previous programming experience is not required. Students with prior experience with object–oriented programming should discuss appropriate course placement with members of the department.
Course webpage: Click here!
Taught by: Walker
134-D1 (LEC) MWF 9:00-9:50
134-D2 (LAB) T 1:00-4:00