Advanced programming concepts: coding conventions and style; pointers; dynamic memory allocation and data structures; linked lists; graphs; abstract data types; object-oriented design. There will be team-based software projects and group presentations.
Prerequisite: Permission of ENGR-Electrical & Computer Engineering department. And ENEE140 or CMSC131; or score of 5 on the A Java AP exam; or score of 4 or 5 on the AB Java AP exam; or satisfactory performance on the department's placement exam.
Restriction: Must be in Engineering: Electrical program.
Credit only granted for: ENEE114 or ENEE150.
Semesters OfferedFall 2017, Spring 2018, Fall 2018, Spring 2019, Fall 2019, Spring 2020, Fall 2020, Spring 2021, Fall 2021, Spring 2022, Fall 2022, Spring 2023
- 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
- Advanced programming concepts: coding conventions and style, unit testing, separate compilation and makefiles
- Dynamic memory allocation
- Linked list
- Graphs and applications
- Other dynamic data structures
- Abstract data types
- Object-oriented design
- The Unified Modeling language (UML)
- 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)