ECE 101
Programming I
Usually offered: Fall, Spring
Required course: Yes
Course Level
Undergraduate
Units
4
Instructor(s)
TBD
Prerequisite(s)
Math 112, 120R, 122B, or 125, or placement at the level of Math 120R.
Course Texts
Required Text: Programming in C, by Roman Lysecky and Frank Vahid, available at:
zybooks.com.
References: C: From Theory to Practice, George Tselikis and Nikolaos Tselikas, CRC Press, 2nd edition. Available through the University of Arizona Library (lib.arizona.edu): arizona-primo.hosted.exlibrisgroup.com/permalink/f/evot53/01UA_ALMA51686677810003843.
Schedule
Weekly Lecture: 2 hours and 30 minutes
Weekly Lab: 2 hours and 50 minutes
Course Description
ECE 101 is an introduction to the basic principles of programming and the C programming language. It introduces students to fundamental software design principles and commonly used techniques to solve computational problems. The course provides principal knowledge in programming concepts such as program flow control, memory management, and elementary data structures. This course also prepares students for more advanced programming courses.
Course Objectives
Upon the completion of this course, students should have achieved the following objectives:
• Conceptualize real-world problems as computational problems,
• Decompose problems into simpler sub-problems,
• Design code for solving computing problems using the C programming language,
• Use simple data structures to store and manipulate data, and
• Apply fundamental software design principles and commonly used techniques.
Learning Outcomes
- CAC 1: Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- CAC 6: Apply computer science theory and software development fundamentals to produce computing-based solutions.
- EAC 1: an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
Course Topics
A brief list of topics to be covered:
Introduction to programming basics
Variables and data types
- Variables , assignments and identifiers
- Arithmetic expressions
- Basic I/O
Branches
- If-else statements
- Relational and logical operators
- Switch statements
- Conditional expressions
Loops
- While loops
- For loops
- Nested loops
File I/O, user-defined functions
- File I/O
- Function prototypes
- Return statement
User-defined functions, pointers
- Functions with branches
- Pointers and Functions
Introduction to arrays
- Array iteration
- Problems modeled with arrays
Multi-dimensional arrays
- Arrays and functions
- Arrays in multiple dimensions
Searching and Sorting
- Linear and binary search
- Sorting algorithms
Strings
- String library functions
- Arrays and strings
- Functions and strings
User-defined data types
- Structs, functions, and pointers
- Arrays of structs
Dynamic memory allocation
- Malloc and free functions
- Calloc and realloc
- Pointers in dynamic allocation
Syllabus Prepared By
Syllabus updated on 8/5/2024