Jump to navigation

The University of Arizona Wordmark Line Logo White
College of Engineering
Home
  • Home
  • Give Today
  • Contact Us

Search form

  • About
    • Welcome
    • Advisory Board
    • Contact Us
  • Undergrad Programs
    • Admissions
    • Degrees
    • Courses
    • Advising
    • Scholarships & Financial Aid
    • Research & Internships
    • Student Clubs & Organizations
    • ABET Accreditation
  • Grad Programs
    • Admissions
    • On-Campus Degrees
    • Online Degrees
    • Courses
    • Advising
    • Research Focus Areas
    • Funding
  • Research
    • Focus Areas
    • Centers
    • Inventions
  • Faculty & Staff
    • Faculty Directory
    • Staff Directory
    • Faculty Videos
    • Employee Resources
    • Open Positions
  • Alumni
    • Give Today
  • News & Events
    • ECE News Archive
    • Events
Undergraduate Programs
Home / Undergraduate Programs / Courses / Computer Programming for Engineering Applications II

ECE 275

Computer Programming for Engineering Applications II

Fall
Spring
Required Course:
Yes

Course Level

Undergraduate

Units

3

Instructor(s)

Connor Fuhrman, Instructor

Prerequisite(s)

Major: ECE. ECE 175

Course Texts

zyBooks Programming in C++ and Data Structures interactive textbook (zybooks.com)

Schedule

Two 75-minute lecture sessions per week, TTh 12:30 PM – 1: 45 PM.

Course Description

Specific Course Information: 
2021-2022 Catalog Data:
C and C++ programming. Core design and analysis of engineering algorithms and structures including lists, trees, graphs, traversal, and encoding. Fundamentals of C and C++ programming languages including pointers, structures, unions, and introduction to classes. Programming design topics including memory management, abstraction and design of advanced structures, and basics of software engineering.

Learning Outcomes

Specific Goals for the Course:
Outcomes of Instruction:
By the end of this course the student will be able to:

  1. Write, test, and debug large software programs using C and C++ programming languages.
  2. Understand the compilation and linking process for software programs.
  3. Utilize commercial integrated-development environment (IDEs) for software development.
  4. Distinguish between statically allocated memory and dynamically allocated memory.
  5. Understand the C program memory organization and differentiate the location in which variables are stored within memory.
  6. Trace the behavior of a function call using the program stack.
  7. Understand and use C programming constructs including structs, pointers, strings, memory allocation, file IO, and command line arguments.
  8. Understand the relation between pointers and memory addresses.
  9. Create software programs that heavily utilize pointers and dynamic memory allocation. 
  10. Implement data structures and supporting algorithms for common data structures including lists, queues, stacks, trees, and graphs.
  11. Create software programs to solve engineering problems using common data structures and algorithms.
  12. Analyze software code to determine the asymptotic runtime.
  13. Select appropriate data structures and algorithms to solve programing problems considering the asymptotic runtime.
  14. Understand the role of encapsulation, abstraction, and code organization in the software design process.
  15. Understand and use C++ programming constructs including classes, constructors and destructors, streams, references, operator overloading, and dynamic memory allocation.
  16. Have a basic knowledge of the standard template library (STL).

Course Topics

Brief list of topics to be covered:

  • Review of C Programming
    • Build process (preprocess, compile, link)
    • Project management tools (e.g., CMake, IDEs)
    • Libraries and code reuse across executables
    • Debugging
  • Memory Concepts
    • Pointers and memory addresses
    • Pass by value and reference
    • Memory allocation and management
    • Distinction between stack and heap in software programs
  • Core Data Structures and Algorithms
    • Trees, queues, stacks, heaps and graphs
    • Sorting, searching, hashing, traversals, shortest path
    • Design, analysis and implementation
    • Asymptotic analysis of algorithms
  • Introduction to C++ and Classes
    • Instantiation, object lifecycle (construction, destruction)
    • Operations
    • Standard Template Library (STL) classes

Relationship to Student Outcomes

ECE 275 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:

1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
2. An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
7. An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Syllabus Prepared By

Syllabus updated on 3/29/2022
  • UNDERGRAD PROGRAMS
  • Admissions
  • Degrees
  • Courses
  • Advising
  • Scholarships & Financial Aid
  • Research & Internships
  • Student Clubs & Organizations
  • ABET Accreditation
undergradadvisor@ece.arizona.edu
  • Cadence University Program Member
  • Employee Resources
The University of Arizona
Department of Electrical & Computer Engineering
1230 E. Speedway Blvd.
P.O. Box 210104
Tucson, AZ 85721-0104
520.621.6193

Facebook YouTube LinkedIn


University Privacy Statement

© 2023 The Arizona Board of Regents on behalf of The University of Arizona.