Evaluations CS3432 Assembly Language Programming Fall 2001

o        I have had several of my former students contact me after graduation and tell me that they wished they had known more about the Unix operating system when they started their jobs. Experience with Unix is also a great asset when studying operating systems and when designing user interfaces. (Not every interface has to use a mouse.)

We did not assume that you knew anything about Unix when you started. The purpose of the first few lab sessions was for you to learn how to use Unix. When we wrote procedures for those labs, we did forget to include a section on using the mail tools. (This has been addressed in the lab procedures in use currently.)

While we did not assume that you knew anything about Unix, we did assume that you had (and still have) the capability to learn new things without our having to provide you with every detail. We also assumed that you had a fundamental understanding of materials covered in prerequisite courses, topics such as recursion, parameter passing, and hand tracing. We firmly believe that the most essential skill of a competent computer professional is to be able to find information, discover techniques, and find solutions to problems independently. We did not ask you to invent technology; we did ask you to think about what you were doing.

As an example, when we purchased the robots, we spent a great deal of time learning how to use them. This required investigation, experimentation, trial and error, and on some occasions creativity. This situation is very much like the very common occurrence of having an employee install and test a new software or hardware product. We want our students to be able to go out into the workforce and be able to tackle projects such as these.

o        Dr. Teller and I covered the material that was appropriate for the course. We did this with an understanding of the entire curriculum in Computer Science at UTEP. This curriculum was developed to meet the needs of our students and takes into account the recommendations of the ACM, the IEEE, the Accreditation Board of Engineering Technology, our Board of Advisors, the faculty of the department, the College of Engineering, and the UT system. Dr. Teller and I invested a great deal of time and energy deciding what to include.

Having said that, we are also open to suggestions about content that students need, but do not receive while studying as undergraduates. You suggest that learning more about hardware would have helped. Can you explain this? What is it that you wanted to know that you we did not cover? Is it something that is covered in a different course? Is it something that is specific to the 68HC11?

o        The base groups were established in lecture and had three members each. The project groups were established in the labs and had two members each. The base groups were not responsible for the final project. There was one student who completed the project on his own. I don't understand how you have confused these two groups.

I disagree that the group work was unsuccessful. In my observations in the labs, I saw students explaining program behavior to their partners. These students were explaining behavior not at the level of registers and bytes, but at a much higher level of abstraction, the level of robot operations. Getting students, particularly assembler students, to use abstraction to help manage complexity is difficult. Yet these students were forced to do exactly that simply because they had to explain their ideas to someone else.

o        This idea of abstraction is so important that I will not allow students in the future to complete projects individually. I not only believe that the groups work, I believe it is one of the essential elements of this course.