Title of the Course – Fundamentals of Computer Engineering
Instructor(s) – Ray Simar
Departments - Electrical and Computer Engineering
Course Number - ELEC 220
Intended Student Audience- Required of all students expecting to major in computer science or electrical engineering
An overview of computer engineering, focusing on the five classic components of every computer: memory, input, output, control, and datapath. Students explore the interaction and use of these components in the modern digital computing system including logic design and assembly language. These key components are studied using a state of the art integrated development environment to analyze the internal workings of a high-performance microcomputer.
In this course students are introduced to the fundamental technology of digital computers. The course is designed to provide students with a basic understanding of the design and use of modern digital computer system and its components. Students learn custom logic design and the influence of technology (hardware and software) on architecture. The course is organized around three main learning goals:
- Use computers more effectively by understanding how they work.
- Be able to engineer a new computing system.
- Understand the role of computer engineering in your future.
PEDAGOGICAL APPROACHES & TEACHING STRATEGIES
Most students enroll in ELEC 220 in their freshman or sophomore year. Students enter the course with diversity of backgrounds and experience working with computers. Some students participated in "hack-a-thons" prior to entering college, while others are working with computers for the first time. There are no prerequisites for the course, but the course is itself a prerequisite for a variety of concentrations in the Electrical and Computer Engineering major as well as the Computer Science major. To develop the skills and knowledge necessary for computer engineering, the course covers a large number of topics and skills. However, a primary focus of the course is hands-on practice and experience with both hardware and software.
EXPERIENTIAL LEARNING & PEER INSTRUCTION
Simar designed the course around an experiential approach with labs that are organized to allow students ample time to work at their own pace with the help of 'peer-instructors' to facilitate knowledge discovery and skill development. Each student uses their own laptop and purchases a mobile hands-on platform (around $15) for the lab sessions. These platforms include: (1) a TM4C123 Launchpad; (2) Sidekick for the launchpad; and, (3) installation of Code Composer Studio integrated development environment on the laptop. The use of these personal, mobile platforms allows students to work with the hardware and software both in the lab and on their own outside of the class. Theory is demonstrated in lecture using the same mobile platform allowing students to test and apply the theories on their own devices. The mobile platform also enables the use of Rice University's experimental classroom in Herring 129 where an open lab space allows the students plenty of space to work individually or in groups. The undergraduate peer-instructors, or lab assistants, are able to easily move throughout the space to help students and offer guidance.
With 200 students enrolled in the course, Simar finds that the lab assistants are an integral part of the experiential course structure. The lab assistant to student ratio is 1 to 5, enabling both a high frequency and duration of student to lab assistant interaction. All lab assistants were students in one of the prior semesters of the course giving them a peer-level perspective on the course pedagogy and content. At the end of each lab Simar brainstorms with the lab assistants and debriefs on student progress during the lab and areas that may need to be addressed in the following lecture and lab. These planning sessions create a course that is responsive to student learning, allowing Simar to build an environment that enables self-paced learning during the labs.
The success of the lab experience is a team effort, led by Electrical and Computer Engineering graduate student Chance Tarver, Simar, and a team of fifteen undergraduate lab assistants.
SELF-PACED LEARNING & IMMEDIATE FEEDBACK
The ELEC 220 labs are designed to address the challenge of students entering the course with diverse backgrounds and a wide variety of computer-based skills and knowledge. Each week the students meet in one of five scheduled labs in the evening for three hours. Building off the flexibility of the mobile platform, the classroom, and the use of lab assistants, Simar structures the labs so that students can stay for as long as they need to master the material outlined for that particular lab. In addition, students can repeat the labs as many times as they like by returning to a later lab session during the week or completing the lab exercise on their own time. The flexibility of the labs creates a low-stakes learning environment in which students can attempt problems, monitor their own success, get immediate feedback and guidance from the lab assistants, Tarver, or Simar and try again or move on to the next set of problems. This flexibility allows for self-paced learning, encouraging students to develop a metacognitive understanding of their own mastery of the material.
LESSONS LEARNED AND FUTURE ITERATIONS OF THE COURSE
Simar was successfully able to design the ELEC 220 course to address many of the challenges the entry-level course encounters. However, he found that there are several on-going challenges for the course. To begin with, because the course is a prerequisite for courses in other majors and for the many concentrations in the computer science major - computer engineering, photonics, data science, among others - the course needs to cover a wide variety of topics that do not always seamlessly fit together. This can be confusing for students as they find the knowledge and skills they are learning are often compartmentalized. To address this issue in future semesters Simar has organized the course into modules that address specific areas of computer engineering helping students to organize what they are learning. By exposing students to a wide variety of topics and areas of the field he hopes to help students clarify their future goals in computer engineering.
Simar has been meticulously collecting feedback each semester from students, lab assistants as well as faculty teaching courses for which ELEC 220 is a prerequisite. The feedback from students and lab assistants has emphasized more opportunities for the structured practice and application that the labs allow for. Therefore, future iterations of the course are planned to allow more lab time for students to do self-paced work with the help of feedback from the lab assistants and professor Simar.
The course has also seen an increase in demand with higher enrollment over the last few semesters. Given the course's foundational role in preparing students for more advanced course work, as well as the success of Simar's course redesign, the department is investigating offering the course once each semester instead of just once a year. Simar is also working closely with other faculty teaching higher level computer engineering courses to insure the course content, skills, and topics covered are preparing students for more rigorous study in computer engineering.
- This paper presents the mastery approach in a computer engineering class and discusses the promise of the approach for developing skills in foundational classes.
- In this 2008 paper the authors present results from a study of the mastery approach on both learning and assessment in computer engineering.
- The authors of this study found that homework designed around the concept of mastery learning and formative feedback enhanced student learning and their time on task.
- This Faculty Focus post provides a brief discussion of the balance between mastery and performance goals in course design.
- Results from this study of peer instruction in a computer science classroom show that students found the class enhanced their learning due to the "interactive" rather than "active" aspects of the course.
- Brown University's Center for Teaching provides an overview of best practices for working with undergraduate teaching assistants.
- This 2015 paper measures the impact of instructional labs on mastery learning in the science classroom and offers suggestions for course design.
Professor in the Practice, Department of Computer and Electrical Engineering
Ray completed his B.S. in Bioengineering at Texas A&M University and his M.S. in Electrical and Computer Engineering at Rice University. He teaches courses in digital signal processing and computer architecture. Prior to returning to Rice University, he spent 25 years as an engineer at Texas Instruments, working on semiconductors and leading teams developing computer architectures for digital signal processing. In 2013, Ray was named as a Distinguished Engineer of the Association for Computing Machinery. In 2011, Ray was named a Fellow of Institute of Electrical and Electronics Engineers. And, in 1997 he was named a Texas Instruments Fellow. Ray has more than 25 patents covering everything from computer architecture to neural networks and high-tech aids for golf.
Ray would like to give special thanks to the following people:
- Carrie Toffoletto, Executive Administrator for the Department of Computer and Electrical Engineering, for her guidance and support on our use of the space. Her knowledge of Montessori techniques has shaped how we use the space.
- Chance Tarver, graduate student Electrical and Computer Engineering, for his leadership in creating the labs and leading the lab assistants.
- Jennifer K. Hunter, Visibility Specialist in Electrical & Computer Engineering at Rice University, for use of the photographs.