This course introduces fundamental programming concepts and techniques, and is intended for all who plan to develop computational artifacts or intelligently deploy computational tools in their studies and careers. Topics covered include the design and implementation of algorithms using variables, control structures, arrays, functions, files, testing, debugging, and structured program design. Elements of object-oriented programming. algorithmic efficiency and data visualization are also introduced. Students deploy programming to develop working solutions that address problems in engineering, science and other areas of contemporary interest that vary from section to section. Course homework involves significant programming. Attendance and participation in class sessions are expected.
Prerequisite: Students may not have earned credit in the following courses: EN.500.113 (Gateway Computing: Python), EN.500.114 (Gateway Computing: Matlab), EN.500.202 (Computation and Programming for Materials Scientists and Engineers), EN.500.132 (Bootcamp: JAVA), EN.500.133 (Bootcamp: Python), or EN.500.134 (Bootcamp: Matlab).