120 likes | 232 Views
Eng 151: A New Accelerated Alternative to Eng 101. Philosophy: all engineering students should be required to take at least one programming/logic course The vast majority of our incoming students have *no* programming/logic background
E N D
Eng 151: A New Accelerated Alternative to Eng 101 • Philosophy: all engineering students should be required to take at least one programming/logic course • The vast majority of our incoming students have *no* programming/logic background • Engineering students with CS background are often quite bored with Eng 101 and may ultimately be “turned off” due to the “triviality” they perceive in the Eng 101 context • Eng 151: • First taught this fall (2009) • Current enrollment is approaching 100 students • This course will challenge qualified students appropriately… • It also will expose non-EECS students to topics they would not otherwise see unless they chose to enroll in EECS 280
Eng 151 Part I: Algorithms and C++ Fundamentals • Week 1: Logic & Binary/Hexadecimal Math Introduction to Linux and g++ • Week 2: C/C++ Fundamentals: Data types, input/output, operators, selection, iteration, functions & procedures • Week 3: C/C++ Fundamentals (cont): Files, constants, variable scope Code Management: Program debugging (e.g., with ddd) • Week 4: C/C++ Arrays, pointers, and dynamic memory allocation • Week 5: Built-in C++ classes & templates (e.g., vector, string)
Eng 151 Part II: Accelerated C++ • Week 6: C/C++ structures & linked lists C++ Classes I: Data abstraction; class declaration/initialization • Week 7: C++ Classes II: Member functions & operators, friend functions, inheritance • Week 8: Parallel processing (pthreads): Intro & applications • Week 9: Embedded Systems: binary operators, DIO, serial protocols, A/D, D/A, PWM • Week 10: PROJECT 1: Embedded system application (e.g., robot PID control)
TableSat • Single degree-of-freedom tabletop satellite for research and education • Driven by computer fans • Analog sensors: rate gyro, 3-axis magnetometer, sun sensors • Network-accessible with overhead video for remote operation • Focus areas: • Embedded software • Navigation and control
Eng 151 Part III: Matlab and Synthesis • Week 11: Matlab Fundamentals: Math, lists & arrays, plotting, scripts & functions; linear algebra introduction • Week 12: Matlab Fundamentals (cont): Operators & branches, iteration, polynomials & curve fitting • Week 13: More Matlab: Numerical analysis, symbolic math, Simulink • Week 14: PROJECT 2: C++ & Matlab: Numerical analysis/simulation application
State of Computing in US Education & Society: A Blunt Perspective • CS has no legacy foothold in our curricula • K-12 institutions maintain prestige through high performance on traditional math/science-based exams (e.g., the AP series) • Students and many faculty/teachers at all levels intentionally or unintentionally “package-ize” computational thinking • Focus on applications where abstraction results in the need only for point & click “vocational” training • Use Excel or Matlab without logic, without understanding of data manipulation or computations • Why not “package-ize” and call it enabling or efficient? • Similar to giving 1st graders a calculator and hypothesizing they don’t need to understand how addition through division operations are actually done • Similar to giving incoming college freshmen programs that differentiate and integrate then focus strictly on how to use these operations
State of Computing in UM Aerospace (or more generally non-EECS engineering) • Only one course, ENG 101, Freshman programming, is required • Insufficient, particularly given limited K-12 background • General consensus among faculty that more is needed, but disagreement on what “more” means • Two tracks of computational prowess acknowledged: • Engineering analysis with numerical solvers • Embedded systems, decision support systems • Software is the single most costly “component” of modern manned Aerospace systems… This need not be the case with better training from K-12 up… • Progress: • Accelerated Eng 101: Helps prepare those ready for the challenge • Undergrad: Flight Software Systems: Fundamental theory + practice • Grad: Aerospace Information Systems: Dyn & Ctrl core course
UM-FMS in Aerospace Computing Education • Provides motivated students environment for programming “real” FMS system from microprocessor through user interface • Lecture Series aimed at preparing students for UM-FMS (and more general) software development • Directed at onboard / ground software development • Ongoing efforts to create complementary analysis lecture series track • Challenge: these “lecture series” are volunteer-taught and volunteer-completed thus will be difficult to sustain
Software Lecture Series - 1 • Part I: Software development “beyond Engineering 101”: • Data abstraction and object-oriented programming • Socket-based network communication • Parallel/asynchronous execution with multiple threads • Serial communication protocols (RS/232, I2C, …) and data interfaces (A/D, D/A, PWM, DIO) • Sensor data calibration, processing, and filtering • Software development with subversion and doxygen
Software Lecture Series - 2 • Part II: UM-FMS: • Shared data structures • Ground Station: QT-based GUI, communication links • Embedded Processor I (Gumstix): Thread functionality and real-time requirements, communication protocols • Microprocessor (Atmel): Registers, interrupts, A/D, D/A, PWM • Embedded Processor II (PC/104): Combines real-time threads, communication, and hardware interfaces on an integrated CPU/DAQ/network board; Linux and QNX operating system options
Complementary Aerospace Electronics Ed. • Aerospace curriculum also deficient in electronics and instrumentation • Students have developed supplemental in-lab lectures series in electronics and microprocessor use also • Topics (with some overlap) • AC/DC instrumentation • Communication & telemetry • Atmel programming basics • Communication data streams • This course is popular given U. Michigan’s strong student team heritage: • S3FL, SolarBubbles, MASA, Formula SAE, Solar Car, Baja Racer, … • Students program a Sumo robot as their “final project” and bring limited problems/questions from their team projects
Grand Challenge • UM can continue to work toward improvements, but students must arrive better-prepared to achieve a “game-changing” result • Finding a path to computational literacy • Courses: Working toward new courses and better integration of computation in existing courses • Multi-step approach: • K-12 must expose students to computational thinking so they understand it in the same context as mathematics • At UM, we will continue to work toward improved courses, collaborations, and extracurricular activities in support of computational thinking