ECE 198 KL
ECE 198 KL - Intro to Computer Eng II (future ECE 220)
Detailed Description and Outline
- Assembly language programming with subroutines and stacks
- Basic programming concepts in C
- Simple data structures
- Concepts in object-oriented programming
Weekly programming assignments are done on Linux computers.
Yale N. Patt and Sanjay J. Patel, Introduction to Computing Systems: from bits and gates to C and beyond, 2nd Edition, McGraw-Hill, 2004.
Engineering Science: 75%
Math/Basic Science: 25%
This course focuses on C programming, where each new C concept is introduced based on the fundamental concepts described in ECE198JL. 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.
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. (a, k)
- Understand the idea of scope and storage for variables, and the role of types in high-level languages in providing information to the compiler. (a)
- 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. (a, i)
- Understand the concepts of arrays and pointers and their representations in memory. Be able to use arrays and pointers for problem solving. (a, k)
- Be able to develop and use data structures for representing and aggregating information (a, b, e)
- Be able to use dynamic memory allocation for storing values and object sin memory. (e, k)
- Understand the value of recursion as a problem-solving tool and be able to apply it for solving math and logical problems. (a, b)
- Be able to test and debug programs written in C using standard debugging tools and techniques. (b, e, h, k)
- Be familiar with the concepts of object-oriented programming. (j)