Rouse Company Foundation Student Services Building

ENES-171 Intermediate Programming Concepts for Engineers

This course will introduce students to intermediate principles of software development and will include high level languages, abstract data types, documentation, data structures, graphs, and dynamic memory allocation. Students work in software development teams on projects in the electrical and computer engineering fields. Program languages such as C and Java will be used in a version control environment to design and test code. Software development projects will involve relevant engineering topics such as modeling, microprocessors, robotics, cryptography, bioinformatics, embedded software, game programming, image processing, and wireless sensor networks.

Credits

4

Prerequisite

ENES-100; CMSY-141 with a grade of C or better or appropriate score on placement test

Corequisite

MATH-181

Notes

Students who have successfully completed MATH-181 in a previous semester should contact the Science, Engineering, and Technology division office to register.

Hours Weekly

3 hours lecture, 3 hours lab weekly

  1. 1. Develop robust and extensible software through effective software engineering practices.
  2. 2. Apply abstract data types and complex data structures.
  3. 3. Demonstrate the ability to independently learn new languages and libraries.
  4. 4. Create test suites and periodic builds, as a member of a team, using version control.
  5. 5. Use tools common to programming such as text editors, compilers, link-editors, and
    debuggers.
  6. 6. Demonstrate the ability to model software using standard documentation techniques.

  1. 1. Develop robust and extensible software through effective software engineering practices.
  2. 2. Apply abstract data types and complex data structures.
  3. 3. Demonstrate the ability to independently learn new languages and libraries.
  4. 4. Create test suites and periodic builds, as a member of a team, using version control.
  5. 5. Use tools common to programming such as text editors, compilers, link-editors, and
    debuggers.
  6. 6. Demonstrate the ability to model software using standard documentation techniques.