This page focuses on the course 1.00 Introduction to Computers and Engineering Problem Solving as it was taught by Dr. George Kocur, Dr. Chris Cassa, and Professor Marta Gonzalez in Spring 2012.
1.00 is a course in the use of computation in engineering. It is as much a modeling class as a software class, and it focuses on formulating and solving engineering problems that involve computation. It considers the computer a part of an overall engineering system, and it blends the study of computation with its use in engineering settings. 1.00 incorporates active learning, through the frequent inclusion of short laboratory exercises, to allow students to self-test their understanding of the material. The homework assignments are longer exercises, in which students learn how to design and implement solutions to larger problems; most assignments have multiple correct approaches, and students are expected to identify and contrast them.
Course Goals for Students
- Apply knowledge of concepts in computing to solve real problems.
- Understand principles of object-oriented software modeling and development, in which physical (or logical) things are modeled as software classes and objects (things) that have behaviors (methods) and data that characterize them.
- Learn about basic control structures and data types, methods and recursion, classes and objects, inheritance, graphics and event processing, numberical methods, sensors, threads/multiprocessing and data structures.
- Gain working knowledge of an object-oriented programming language (Java) by using its features to solve engineering problems.
- Model engineering problems in a computation framework.
Possibilities for Further Study/Careers
Most students take 1.00 as an elective to provide them with skills in computation. They tend to be engineering, science or management majors who will use these skills in future laboratory, project, and design courses, and often in theses or research projects.
Below, Dr. George Kocur describes various aspects of how he taught 1.00 Introduction to Computers and Engineering Problem Solving.
Teaching computer science to students with diverse backgrounds
We’re teaching computation to students who are not computer science majors, but want and need to use computation in their engineering, science or management studies. We are not as formal as a computer science class might be, and we focus on intuition and explaining the reasons why computation is done a certain way, and how to model problems to be able to use computation effectively.
Dr. Steve Lerman, Dr. Jud Harward and Dr. George Kocur wrote grant proposals to receive funding to develop the active learning materials and to provide loaner laptops about 10 years ago. We also rewrote all the course materials to switch to active learning and co-taught this subject every semester.
While the educational literature suggested active learning at the time we chose to adopt it (see McCray, DeHaan & Shuck ), examples of active learning were very limited. We needed to learn, by trial and error, how to create this interactive style of teaching. We expanded the length of lectures (active learning) from one hour to one and a half hours, and we reduced the amount of material covered somewhat. Student performance increased substantially.
All the materials for the semester are completed before the first class: lectures, recitations, quizzes/exams, problem sets, etc. Class sessions are refined after every lecture; we jot down anything that wasn’t clear to students and fix it for the next semester. Since the instructors circulate and answer questions during active learning, we get a lot of feedback on what is and isn’t clear.
1.00 is famous for office hours. The TAs hold the office hours in a classroom, and they are heavily attended by students who use them for help in completing the homework, and for explanations of course materials.
The students' grades were based on the following activities:
Instructor Insights on Assessment
We saw a major change in student outcomes after implementing active learning. Before active learning, about 15% of students had end-of-term grade averages less than 50%. After active learning, we have essentially no one below 50% or, in most semesters, 60%. Attendance is high, and quiz and exam scores have improved. An early evaluation is at Barak, M., J. Harward, G. Kocur, et al. “Transforming an Introductory Programming Course: From Lectures to Active Learning via Wireless Laptops,” Journal of Science Education and Technology, Volume 16, No. 4, August 2007.
Breakdown by Year
Roughly 90% undergrads and 10% graduate students.
Breakdown by Major
A mix of students from several different majors, including Civil and Environmental Engineering, Materials Science and Engineering, Aeronautics and Astronautics Engineering, Mechanical Engineering, Electrical Engineering and Computer Science, and Management.
Typical Student Background
The course is an initial subject in computing; it assumes a knowledge of basic calculus and physics for some topics. No prior software experience is assumed; 75% of students have no prior experience.
During an average week, students were expected to spend 12 hours on the course, roughly divided as follows:
- Met 3 times per week for 1.5 hours per session; 37 sessions in total; mandatory attendance.
- Active Learning format; Students had laptop computers and sensor kits. Lectures were broken into segments; students did active learning exercises at several points in each lecture. Instructor and TAs circulated to help. Active learning was mandatory; if a student missed a class, he or she submitted the active learning component, which is posted a week ahead.
- Met once a week; taught by a TA; 12 sessions in total; mandatory attendance.
- Also in active learning format.
- Sections had about 10 students.
Out of Class
- Read the assigned readings.
- Completed the problem sets.
- Worked on active learning exercises.
- Studied for quizzes and exams.
- Many students attended optional office hours, during which TAs helped them with homework and provided explanations of course content.