The BRADLEY DEPARTMENT of ELECTRICAL and COMPUTER ENGINEERING

ECE 2514 Computational Engineering | ECE | Virginia Tech

Undergraduate PROGRAMS

Course Information

Description

Software development processes for electrical and computer engineering applications. Modeling, simulation, data analysis, and visualization. Computing abstractions and the use of application programming interfaces. Software design and implementation using a procedural, class-based language. Integrated code development and testing. Team-based development of autonomous system applications reinforcing course topics

Why take this course?

Software is an essential component in modern electrical and computer engineering systems. Examples of such systems include the Internet of Things, industrial control, and autonomous robots / cars / drones. The complexity of these systems resides in the software, and a systematic approach is required to be successful. Problems should first be explored using modeling and simulation tools in order to develop, evaluate, refine, and validate effective and efficient algorithms and data structures. This development process will be illustrated with small unmanned autonomous systems which comes with a rich set of realistic, open source simulation tools incorporating high resolution data.

Learning Objectives

  • 1. Analyze electrical and computer engineering problems arising in autonomous systems applications using modeling, data visualization, and simulation software.
  • 2. Apply abstraction to problem exploration and solution development.
  • 3. Translate abstract algorithms and data types into a procedural, class-based language.
  • 4. Develop software applications with hierarchical design and systematic test schemes.
  • 5. Participate in the team-based design, implementation, test, demonstration, and evaluation of an autonomous, data-driven application.
  • 6. Demonstrate professional and ethical behavior in a team-based engineering environment.

Course Topics

Topic

Percentage of Course

1. System design process 5%
2. Autonomous system modeling 10%
3. Autonomous system simulation 15%
4. Data analysis and visualization 10%
5. Computing abstractions 10%
6. Implementation of algorithms in a procedural programming language 15%
7. Data organization in a procedural programming language 10%
8. Design decomposition using functions and classes 5%
9. Collaborative and ethical software testing strategies 15%
10. Application programming interfaces 5%