A First Course in Electrical and Computer Engineering

(1 review)


Louis Scharf, Colorado State University

Pub Date: 2009

ISBN 13:

Publisher: OpenStax CNX

Conditions of Use



  All reviews are licensed under a CC BY-ND license.

Learn more about reviews.


Reviewed by Kim Jovanovich, Assistant Dean of Engineering and Professor of Practice Electrical Engineering, University of New Orleans, on 2/9/2017.

The book actually does a great job of collecting and presenting those areas that are known to be problematic for first introductory courses in … read more


Table of Contents


  • 1. Complex Numbers
  • 2. The Functions e^x and e^j
  • 3. Phasors
  • 4. Linear Algebra
  • 5. Vector Graphics
  • 6. Filtering
  • 7. Binary Codes
  • 8. An Introduction to MATLAB
  • 9. The Edix Editor
  • 10. Useful Mathematical Identities


About the Book

This book was written for an experimental freshman course at the University of Colorado. The course is now an elective that the majority of our electrical and computer engineering students take in the second semester of their freshman year, just before their first circuits course. Our department decided to offer this course for several reasons:

  • we wanted to pique student' interest in engineering by acquainting them with engineering teachers early in their university careers and by providing with exposure to the types of problems that electrical and computer engineers are asked to solve;
  • we wanted students entering the electrical and computer engineering programs to be prepared in complex analysis, phasors, and linear algebra, topics that are of fundamental importance in our discipline;
  • we wanted students to have an introduction to a software application tool, such as MATLAB, to complete their preparation for practical and efficient computing in their subsequent courses and in their professional careers;
  • we wanted students to make early contact with advanced topics like vector graphics, filtering, and binary coding so that they would gain a more rounded picture of modern electrical and computer engineering.

In order to introduce this course, we had to sacrifice a second semester of Pascal programming. We concluded that the sacrifice was worth making because we found that most of our students were prepared for high-level language computing after just one semester of programming.

We believe engineering educators elsewhere are reaching similar conclusions about their own students and curriculums. We hope this book helps create a much needed dialogue about curriculum revision and that it leads to the development of similar introductory courses that encourage students to enter and practice our craft. Students electing to take this course have completed one semester of calculus, computer programming, chemistry, and humanities.

Concurrently with this course, students take physics and a second semester of calculus, as well as a second semester in the humanities. By omitting the advanced topics marked by asterisks, we are able to cover Complex Numbers through Linear Algebra, plus two of the three remaining chapters. The book is organized so that the instructor can select any two of the three. If every chapter of this book is covered, including the advanced topics, then enough material exists for a two-semester course.

The first three chapters of this book provide a fairly complete coverage of complex numbers, the functions e^x and e^j and phasors. Our department philosophy is that these topics must be understood if a student is to succeed in electrical and computer engineering. These three chapters may also be used as a supplement to a circuits course. A measured pace of presentation, taking between sixteen and eighteen lectures, is sufficient to cover all but the advanced sections in Complex Numbers through Phasors.

The chapter on "linear algebra" is prerequisite for all subsequent chapters. We use eight to ten lectures to cover it. We devote twelve to sixteen lectures to cover topics from Vector Graphics through Binary Codes. (We assume a semester consisting of 42 lectures and three exams.) The chapter on vector graphics applies the linear algebra learned in the previous chapter to the problem of translating, scaling, and rotating images. "Filtering" introduces the student to basic ideas in averaging and filtering. The chapter on "Binary Codes" covers the rudiments of binary coding, including Huffman codes and Hamming codes.

If the users of this book find "Vector Graphics" through "Binary Codes" too confining, we encourage them to supplement the essential material in "Complex Numbers" through "Linear Algebra" with their own course notes on additional topics. Within electrical and computer engineering there are endless possibilities. Practically any set of topics that can be taught with conviction and enthusiasm will whet the student's appetite. We encourage you to write to us or to our editor, Tom Robbins, about your ideas for additional topics. We would like to think that our book and its subsequent editions will have an open architecture that enables us to accommodate a wide range of student and faculty interests.

Throughout this book we have used MATLAB programs to illustrate key ideas. MATLAB is an interactive, matrix-oriented language that is ideally suited to circuit analysis, linear systems, control theory, communications, linear algebra, and numerical analysis. MATLAB is rapidly becoming a standard software tool in universities and engineering companies. (For more information about MATLAB, return the attached card in the back of this book to The MathWorks, Inc.) MATLAB programs are designed to develop the student's ability to solve meaningful problems, compute, and plot in a high-level applications language. Our students get started in MATLAB by working through “An Introduction to MATLAB,” while seated at an IBM PC (or look-alike) or an Apple Macintosh. We also have them run through the demonstration programs in "Complex Numbers". Each week we give three classroom lectures and conduct a one-hour computer lab session. Students use this lab session to hone MATLAB skills, to write programs, or to conduct the numerical experiments that are given at the end of each chapter. We require that these experiments be carried out and then reported in a short lab report that contains (i) introduction, (ii) analytical computations, (iii) computer code, (iv) experimental results, and (v) conclusions. The quality of the numerical results and the computer graphics astonishes students. Solutions to the chapter problems are available from the publisher for instructors who adopt this text for classroom use.

We wish to acknowledge our late colleague Richard Roberts, who encouraged us to publish this book, and Michael Lightner and Ruth Ravenel, who taught "Linear Algebra" and "Vector Graphics" and offered helpful suggestions on the manuscript. We thank C. T. Mullis for allowing us to use his notes on binary codes to guide our writing of "Binary Codes". We thank Cédric Demeure and Peter Massey for their contributions to the writing of "An Introduction to MATLAB" and "The Edix Editor". We thank Tom Robbins, our editor at Addison-Wesley, for his encouragement, patience, and many suggestions. We are especially grateful to Julie Fredlund, who composed this text through many drafts and improved it in many ways. We thank her for preparing an excellent manuscript for production.

About the Contributors


Louis Scharf received his Ph.D. from the University of Washington, Seattle. From 1971 to 1982 he served as Professor of Electrical Engineering and Statistics at CSU. From 1982 to 1985 he was Professor and Chairman of Electrical and Computer Engineering at the University of Rhode Island, Kingston. From 1985 to 2000 he was Professor of Electrical and Computer Engineering at the University of Colorado, Boulder. In January 2001, Professor Scharf rejoins Colorado State University as Professor of Electrical and Computer Engineering, and Statistics.

Professor Scharf has held several visiting positions here and abroad. He has developed particularly close ties with Ecole Superieure d'Electricite (Gif-sur-Yvette), Ecole Nationale Superieure des Telecommunications (Paris), and EURECOM (Nice). He is a recognized expert in statistical signal processing, as it applies to adaptive radar, sonar, and wireless communication. His most important contributions to date are to invariance theories for detection and estimation; matched and adaptive subspace detectors for radar, sonar, and data communication; and canonical decompositions for reduced dimensional filtering and quantizing. His current interests are in rapidly-adaptive receiver design for space-time signal processing in the wireless communication channel.

Professor Scharf is a Fellow of IEEE. He chairs the Fellow Committee for the IEEE Signal Processing Society, and serves on its Technical Committees for Theory and Methods and for Sensor Arrays and Multichannel Signal Processing. He has received numerous awards for his research contributions to statistical signal processing, including an IEEE Distinguished Lectureship, an IEEE Third Millenium Medal, and the Technical Achievement Award from the IEEE Signal Processing Society.