Clark School Home UMD
ECE

ENEE150 Intermediate Programming Concepts for Engineers

Credit & Contact Hours:

3 credits (3 hours lecture, 1 hours recitation, 0 hours laboratory)


Course Description:

This course covers intermediate principles of software development, including high level languages, object-oriented design, documentation, data structures, graphs, dynamic memory allocation, and software development for applications in electrical and computer engineering. Programs will use the C language under a UNIX environment. Software development projects will involve relevant electrical engineering topics such as analysis of digital and analog circuits, cryptography, bio-informatics, embedded software, game programming, image processing, and wireless sensor networks.


Prerequisite(s)

ENEE140, CMSC131, score of 5 on AP Computer Science A (JAVA) exam, score of 4 or 5 on AP Computer Science AB (JAVA) exam, OR passing score on departmental placement exam.

Co-Requisite(s):

None

Course Oversight:

Computer Engineering


Course Objectives:

  • Learn how to develop robust and extensible software through effective software engineering practices
  • Learn about object-oriented design and complex data structures
  • Learn the skills to self-teach other software development concepts in the future


​Topics Covered:

  • Advanced programming concepts: coding conventions and style, unit testing, separate compilation and makefiles
  • Pointers
  • Dynamic memory allocation
  • Structures
  • Linked list
  • Graphs and applications
  • Other dynamic data structures
  • Abstract data types
  • Object-oriented design
  • The Unified Modeling language (UML)


Learning Outcomes

  • Ability to apply knowledge of mathematics, science, and engineering (Moderate)
  • Ability to design a system, component, or process to meet desired needs (Significant)
  • Ability to to identify, formulate, and solve engineering problems (Significant)
  • Recognition of the need for, and an ability to engage in life-long learning (Significant)
  • Ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (Significant)