Introduction to Computers and Engineering Problem Solving
MIT OpenCourseWare offers this introductory programming course aimed at engineering, science, and management students rather than computer science majors. Taught in Java, it covers object-oriented design, class hierarchies and inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures, always framed around using computation to model or solve physical and logical engineering problems. Classes alternate short lectures with in-class lab exercises so students apply new concepts immediately, and weekly programming assignments build cumulatively, each one folding in techniques from prior weeks into a larger technical application. Materials include lecture notes, lab exercises, and assignment sets published under MIT's open license, letting learners work through the same problems assigned on campus. No prior programming experience is assumed. The course sits within MIT's Civil and Environmental Engineering offerings but serves as a general first course in applied programming for any technical discipline.