ECE 198 JL - Introduction to Computer Eng (future ECE 120)

Fall 2014

Introduction to Computer EngECE198JL61425LEC40900 - 0950 M W F  1002 Electrical & Computer Eng Bldg Volodymyr Kindratenko
Steven Lumetta

Official Description

Lectures and discussions relating to new areas of interest. Course Information: May be repeated in the same or separate terms for unlimited hours if topics vary. See class schedule for topics and prerequisites.

Section Description

Topic: Introduction to Computer Engineering. Prerequisites: ECE198JL is the prerequisite for ECE198JK. In turn, ECE198JK is the prerequisite for ECE298. These courses are intended to eventually replace the current sequence 190, 290, and 385. The 198JL, 198KL, 298 sequence will fulfill the 190, 290, and 385 requirements in either of the ECE undergraduate curriculum, and students will not be given additional credit for 190, 290, or 385. Together with ECE198KL, this course gives an introduction to the design and programming of computing systems. We start the course by motivating our objectives and connecting them with students future ECE studies and career paths.The philosophy of our approach is quite different than the typical introduction to programming course: after a brief illustration of our goals and objectives with a quick introduction to C, we approach programming from the bottom upwards. In particular, we begin by describing the architecture of a computer, including logic gat

Subject Area

  • Computer Engineering

Course Director

Detailed Description and Outline

  • Representation of information.
  • Boolean algebra.
  • Combinational network analysis and design.
  • Sequential network analysis and design.
  • Computer organization and machine-level programming.
  • Programming in C.

Computer Usage

There are assignments for most of the weeks on UNIX workstations. One-third of the assignments introduce students to UNIX environment, Linux and programming tools. One-third of the assignments utilize a commercial schematic capture and simulation software to teach combinational and sequential logic design concepts. One-third of the assignments are programming assignments requiring students to write programs in C, binary machine language, and assembly.


Yale N. Patt and Sanjay J. Patel, Introduction to Computing Systems: from bits and gates to C and beyond, 2nd Edition, McGraw-Hill, 2003. Class Notes by Prof. Lumetta.

ABET Category

Engineering Science: 60%
Engineering Design: 40%

Course Goals

As an introductory course to digital logic, ECE 198JL demonstrates the relation between Boolean algebra as a formal framework for describing real-world problems, circuits implementing Boolean expressions that can be simulated using digital design software, and digital circuits physically built with TTL chips. By using the three modalities (Boolean expressions, circuit drawings and simulations, and actual hardware implementation), students are exposed to the digital systems design cycle, from the problem formulation stage to the actual hardware implementation and verification stage. This sets the stage for ECE 289 course in which the students continue with the digital logic design.

As an introductory course to computer systems, ECE 198JL shows the relation between the hardware, software, and the interface between them. The students are exposed to computer microarchitecture, they have hands-on experience in programming using binary machine instructions and in the assembly language. This sets the stage for ECE 198 KL course in which the students learn programming using high-level languages.

Instructional Objectives

After completing this course, students should

  • understand the role and importance of abstraction in computing systems (a),
  • recognize and be able to make use of standard digital components in designing simple combinational logic (a, c),
  • be able to design and implement a simple finite state machine (FSM) as a clock-synchronous sequential circuit using digital logic (a, c),
  • be able to design and implement a simple FSM using assembly language (a, c),
  • understand the principles of computer organization and understand how computers execute instructions (a, c, k),
  • be able to write simple programs in both C and assembly language (a, c, k),
  • develop the skills required to solve engineering problems (a).

Since this is a freshman course, we also have explicit objectives for providing students with an understanding of the profession. In particular, students who have completed this course should

  • understand the expectations of the engineering discipline in terms of effort, quality, and objectivity (e,f,g),
  • recognize that self-motivation and lifelong learning are necessary to success in engineering (h,i,j),
  • be able to articulate the importance of understanding tradeoffs and be able to recognize and identify basic design tradeoffs (e).

Last updated