Salt Lake City, Utah
June 20, 2004
June 20, 2004
June 23, 2004
9.407.1 - 9.407.10
Developing Applied Problem-Solving Skills in Computer Engineering Curricula Dave Williams Western Nevada Community College
First-year computer engineering students are faced with the difficult challenge of developing a number of skills simultaneously. In addition to acquiring a mastery of the basic principles covered in each course, students must also exercise their problem solving muscles in order to successfully apply that material in the proper engineering context. Further, their solution must often be achieved through the use of a programming language or technical software package with a steep initial learning curve. A student working hard to retain subject matter may be severely handicapped by underdeveloped problem-solving skills and the need to learn a seemingly arcane programming language at the same time.
A successful instructional technique is presented which introduces complex topics through the use of a series of comprehensible examples of escalating sophistication that are easily implemented using standard computer engineering tools and techniques. As one example, public key cryptography (essential to the fields of computer engineering and security) is highly dependent on the generation of very large prime numbers. The rich topic of primality testing, immediately digestible at the simplest level by every student, is explored using a variety of algorithms in C++. Beginning with the simplest brute-force method, students are led through the process of progressive algorithm development. The speed and efficiency of their algorithms increase along with their understanding of the techniques as well as their command of the programming language. From the easily-implemented first approach, the module culminates with programs several orders of magnitude more efficient than students’ initial solutions. The progressive nature of this module provides students with the satisfaction of accomplishment while permitting them, working primarily in small groups of students with comparable abilities, to proceed at an appropriate pace as their proficiency develops.
Computer Programming, C++, Problem Solving, Algorithms
Introduction and Background
Introductory computer programming is a very difficult course for most students. By itself, algorithm fundamentals can be difficult to master, especially for students lacking problem- solving skills. But when the algorithms must be translated into source code, the difficulty increases exponentially. Add to that the need for class-wide comprehension of the math or
“Proceedings of the 2004 American Society for Engineering Education Annual Conference & Exposition Copyright © 2004, American Society for Engineering Education”
Williams, D. (2004, June), Developing Applied Problem Solving Skills In Computer Engineering Curricula Paper presented at 2004 Annual Conference, Salt Lake City, Utah. https://peer.asee.org/13120
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2004 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015