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
 

Contact Undergraduate Advisor: undergradadvisor@ece.arizona.edu

Contact Us
Contact Us
Loading...