{'fraction_non_alphanumeric': 0.015139442231075698, 'fraction_numerical': 0.0, 'mean_word_length': 5.248756218905473, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Enhancing the hardware design experience for computer engineers

People become engineers because they love to build things. With the recent progress in design automation tools, it is now possible to revise the core computer engineering curriculum to include realistic design experiences in virtually all courses, even those that are not usually thought of as being laboratory courses. The use of design automation makes it possible to assign a large number of simple design exercises in low-level courses, and a few more complex projects in more advanced courses. This paper describes enhancements to three core courses: logic design; computer architecture; and digital system design. These changes are based on a common set of tools that are used throughout the curriculum. Several design exercises are described, along with a suggested sequence for the various exercises. Several laboratory manuals have been developed for use with standard textbooks. The references provide pointers to web sites where the laboratory manuals and tools can be downloaded. Suggestions for textbooks for each course are provided, although the laboratory materials should be useful with a wide variety of texts. Classroom experience and student reactions are also reported.