You are on page 1of 6

Aerospace Engineering

Professor Sean Montgomery


AE 30 Computer Programming for Aerospace Engineers

Term:

Fall 2014

Lecture:

Thursdays 1:30 2:20 pm in ENG 329

Lab:

Section 02: Tuesdays 9:00 11:45 am in ENG 407


Section 03: Thursdays 3:00 5:45 pm in ENG 407

Instructor Info: Professor Sean Montgomery


sean.montgomery@sjsu.edu
Office Hours: MWF 5-6 pm or by appointment
Office Location: TBD
Prerequisites:

None

Textbook:

None

Description:
C language: Variables, data types, operators, functions, modular programming, input/output
sequence, pointers and memory addressing, external libraries, dynamic memory allocation.
MATLAB: Variables, scripts, operations, visualization, plotting and programming. Equation
solving and curve fitting. Symbolics, Simulink and I/O building block.

Aerospace Engineering
Professor Sean Montgomery
AE 30 Computer Programming for Aerospace Engineers
Goals:
1. Develop an understanding of writing, compiling, and debugging programming codes in C
and MATLAB.
2. Provide background in C and MATLAB programming languages with specific applications
on aircraft and spacecraft applications.
3. Develop an understanding of the fundamental elements in code writing, debugging and
numerical methods in C and MATLAB as applied to the aircraft and spacecraft trajectories.
Learning Objectives:
Students completing the course will be able to:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Write, compile and debug C programs.


Define variables, data types and operators in C.
Manipulate and code arrays combined with pointer arithmetic
Define data types, structs, bitfields, unions, memory allocations.
Define and interpret external libraries in C.
Define and manipulate variables, scripts and operations in MATLAB.
Visualize and plot graphic outputs of provided numeric data sets in MATLAB.
Solve and simulate set of algebraic/numeric equations in MATLAB.
Write user defined functions and subroutines to execute specific code segments in
MATLAB.
10. Construct block diagrams in Simulink and simulate given dynamics in MATLAB.
Lectures:
Lectures will focus on general programming knowledge while labs will focus on developing
programming skills. Lectures will provide more details about what goes on behind the scenes
when a computer runs a program. Lectures will also cover computer programming in an
engineering context and examine several case studies where programming errors caused
aerospace failures.
Labs:
Developing practical programming skills for engineers is the main goal of the class. Writing
programs during lab sessions will account for the majority of each students time spent on the
class. Lab work is also the largest component of each students grade.
Students are highly encouraged to use their own laptop computers for the lab sessions so they
may continue working on programming assignments or projects at home.
Students are responsible for saving all of their programming work. The desktop computers in the
lab have their storage wiped at unknown intervals for any reason so students should not rely on
them to save their work. Students should use their own laptops or save their work using a cloud
data storage service (Dropbox, Google Drive, OneDrive, etc.), or on a portable USB device.
2

Aerospace Engineering
Professor Sean Montgomery
AE 30 Computer Programming for Aerospace Engineers
Lab assignments will consist of open ended challenges which require students to write a short
program to solve them. The instructor will provide a demo of some of the programming methods
required to complete the assignment at the beginning of each lab session. Students are expected
to collaborate to solve problems, but each student is responsible for understanding how to solve
each lab assignment and explaining any line of code in their solution. Students will have some
flexibility in the pace of the lab work. Students who have completed the current lab assignment
may continue on ahead of the class to the next lab assignment. If a student does not complete the
lab assignment during the current session, they may continue the assignment at home or during
the next lab session. However, students who find themselves falling behind the class should
make an effort to catch up, otherwise they may find it difficult to complete all of the required lab
assignments and their project by the end of the class.
Software:
Eclipse Luna for C/C++ Developers is the software that will be used for programming in C. The
software is free and you can download it here:
https://eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunar
Please note that additional software will need to be installed depending on the operating system
you use. Follow the installation instructions.
MATLAB with Simulink will be used in the second half of the class. A student version may be
purchased for $99 from here:
http://www.mathworks.com/academia/student_version/
MATLAB with Simulink is also available on the desktop computers in the lab, or in the
Aerospace Engineering computer lab in ENG 164.
Grading:

Lab Assignments
MATLAB Project
2 Exams
Quizzes and in Class Activities

60%
20% (+up to 10% extra credit)
15%
5%

100 97% A+
97 92% A
92 90% A88 90% B+
82 88% B
80 82% B78 80% C+
72 78% C
70 72% C60 70% D
< 60% F
3

Aerospace Engineering
Professor Sean Montgomery
AE 30 Computer Programming for Aerospace Engineers
Lab Assignments:
Lab assignments will primarily be graded on a complete/incomplete basis. When a student
believes they have completed the assignment, the instructor must verify this during a lab session
for the student to receive a grade for the assignment. The instructor may ask the student about the
program and/or ask the student to modify the program slightly. The student must meet these
demands to receive full credit for the assignment. Extra credit will be available on some
assignments for students who solve more difficult problems.
MATLAB Project:
Students will acquire programming skills by writing short programs for lab assignments during
the first half of the class. In the second half of the class, students will learn to use MATLAB to
solve more difficult problems that require longer and more complex programs. At the end of the
class, students must submit a MATLAB (or Simulink) program which solves an aerospace
engineering problem that is significantly more difficult than any of the lab assignments. This
MATLAB project replaces the final exam for the class. For the MATLAB project, students may
work alone or partner with another student. Each partner must identify their contribution to the
final project and be able to explain any code they contributed, or their grade will be penalized.
Students may choose from projects defined by the instructor, or create their own as long as it is
aerospace related and they receive approval from the instructor. Students may receive extra
credit if their project is especially challenging and/or their solution is especially well done.
Students must give a brief presentation about their project and their solution at the end of the
class.
Exams:
The first midterm will be given about half way through the semester and will focus on lecture
material, but will also include some programming questions based on what students learned from
lab assignments. A second midterm will be given near the end of the semester and will also focus
on lecture material plus a few lab based questions.
Quizzes and in Class Activities:
Short quizzes will sometimes be given during lecture to check students comprehension of
lecture material. These quizzes will NOT be announced ahead of time so students should keep up
with the lecture material. Problems or tasks will sometimes be given during lecture and may need
to be completed as homework.
Homework:
Although no specific homework assignments are planned, students are expected to complete
unfinished lab assignments at home. Students are also expected to study anything they dont
understand from class at home. This may include writing their own programs to test their
understanding and reading online tutorials, references, or forums.

Aerospace Engineering
Professor Sean Montgomery
AE 30 Computer Programming for Aerospace Engineers
APPROXIMATE WEEKLY SCHEDULE
Week

Lecture Topics

1. Variables, Data types and operators in C


2. Functions in C
3. Modular programming in C
4. Input and output sequence in C
5. Pointers and memory addressing in C
6. User defined data types in C
7. External libraries in C
8. Dynamic memory allocation in C
9. Variables and scripts in MATLAB
10. Operations in MATLAB
11. Visualization, plotting and programming in MATLAB
12. Solving equations and curve fitting in MATLAB
13. Symbolics, I/O building block in MATLAB
14. Simulink in MATLAB
15. Advanced methods of data analysis and data handling in MATLAB
16. Final project presentations
17. FINAL PROJECT PRESENTATIONS: Wednesday, December 17th 12:15 2:30 pm

Aerospace Engineering
Professor Sean Montgomery
AE 30 Computer Programming for Aerospace Engineers
more information, visit Counseling Services website

You might also like