ECE 220 - Computer Systems & Programming

Spring 2023

Computer Systems & ProgrammingECE220BD161635DIS00800 - 0850 F  2022 Electrical & Computer Eng Bldg Sean Yao
Computer Systems & ProgrammingECE220BD261636DIS00900 - 0950 F  2022 Electrical & Computer Eng Bldg Michelle Zhang
Computer Systems & ProgrammingECE220BD361637DIS01000 - 1050 F  2022 Electrical & Computer Eng Bldg Evie Shen
Computer Systems & ProgrammingECE220BD461639DIS01100 - 1150 F  2022 Electrical & Computer Eng Bldg Hamilton Silberg
Computer Systems & ProgrammingECE220BD561638DIS01300 - 1350 F  2022 Electrical & Computer Eng Bldg Srijan Chakraborty
Computer Systems & ProgrammingECE220BD661640DIS01400 - 1450 F  2022 Electrical & Computer Eng Bldg Sankalp Yamsani
Computer Systems & ProgrammingECE220BD761641DIS01500 - 1550 F  2022 Electrical & Computer Eng Bldg Yun-Hsuan Cheng
Computer Systems & ProgrammingECE220BD861642DIS01600 - 1650 F  2022 Electrical & Computer Eng Bldg Nikitha Reddy Sankepally
Computer Systems & ProgrammingECE220BD961643DIS01700 - 1750 F  2022 Electrical & Computer Eng Bldg Parth Patel
Computer Systems & ProgrammingECE220BDA64369DIS01200 - 1250 F  2022 Electrical & Computer Eng Bldg Hamilton Silberg
Computer Systems & ProgrammingECE220BL61629LEC41230 - 1350 T R  3031 Campus Instructional Facility Ujjal Kumar Bhowmik
Computer Systems & ProgrammingECE220BL263649LEC41100 - 1220 T R  2035 Campus Instructional Facility Yuting Wu Chen
Computer Systems & ProgrammingECE220BL363650LEC41500 - 1620 T R  1013 Electrical & Computer Eng Bldg Yih-Chun Hu

Official Description

Advanced use of LC-3 assembly language for I/O and function calling convention. C programming, covering basic programming concepts, functions, arrays, pointers, I/O, recursion, simple data structures, linked lists, dynamic memory management, and basic algorithms. Information hiding and object-oriented design as commonly implemented in modern software and computer systems programming. Course Information: Prerequisite: ECE 120. Restricted to Computer Engineering or Electrical Engineering majors or transfer students with ECE Department consent.

Subject Area

  • Core Curriculum

Course Director

Detailed Description and Outline

  1. Topics Covered

    • Assembly language programming with subroutines and stacks

    • Basic programming concepts in C

    • Functions

    • Arrays

    • Pointers

    • I/O

    • Recursion

    • Simple data structures such as linked lists and trees

    • Basic sorting algorithms

    • Concepts in object-oriented programming

Course Goals

This course focuses on C programming, where each new C concept is introduced based on the fundamental concepts described in ECE120. We cover basic programming concepts, functions, arrays, pointers, I/O, recursion, simple data structures, and concepts in object-oriented programming. A bottom-up understanding of computing systems has proven more successful in helping students to understand advanced concepts in computing that follow in the ECE curriculum.

Instructional Objectives

After completing this course, students should

  • Understand how statements written in high-level language such as C are transformed into machine code. Be able to perform such a transformation manually. (1)

  • Understand the idea of scope and storage for variables, and the role of types in high-level languages in providing information to the compiler. (1)

  • Understand the stack abstraction an the notion of a calling convention and its role in supporting the transfer of information between a caller and a subroutine. (1, 7)

  • Understand the concepts of arrays and pointers and their representations in memory. Be able to use arrays and pointers for problem solving. (1)

  • Be able to develop and use data structures for representing and aggregating information (1, 6)

  • Be able to use dynamic memory allocation for storing values and objects in memory. (1, 6)

  • Understand the value of recursion as a problem-solving tool and be able to apply it for solving math and logical problems. (1, 6)

  • Be able to test and debug programs written in C using standard debugging tools and techniques. (1, 4, 6)

  • Be familiar with the concepts of object-oriented programming. (4)

Last updated