ECE 2036: Engineering
Dr. Benjamin Klein
Office: TSRB 438
Office hours 1- 2 pm
& 3 – 4 pm Wednesdays in Van Leer E378
is designed to cover the C++ programming language in detail, with emphasis on
engineering applications and efficient algorithms. Additionally we will cover
programming methods for embedded systems using C++. There are numerous
programming assignments, each of which enforces some aspect of efficient
programming in C++. The course covers object oriented programming including
polymorphism, C++ references, C++ operator overloading, and templates.
syntax, structure of a program
types, pointers and arrays, data structures
member functions, constructors, destructors
hierarchies and inheritance
and the Standard Template Library (STL)
programming with C and C++
Textbook, supporting materials, and resources
textbook: C++ How to Program, 9th
Edition by Paul Deitel and Harvey Deitel (required).
This includes a code to access a website with instructional videos and
other supporting materials.
Supporting textbook (free): Thinking in C++, 2nd Edition by Bruce Eckel.
Available at: http://original.jamesthornton.com/eckel/
· Class materials will
be posted to t-square.gatech.edu
· Dr. Hamblen’s
ECE2036 website: http://users.ece.gatech.edu/~hamblen/2036/
· Easy to read C++
introduction and reference at http://cplusplus.com
· Mbed handbook and
cookbook at mbed.org
Mbed module and parts kit (required): the mbed
module is a embedded
processor / microcontroller and associated parts that you will program as part
of some assignments. This may prove
useful in other labs as well; for example, your senior design project. You may purchase this kit ‘used’
from a student, or ‘new’ at:
‘new’ mbed kits will arrive in a few
Jinx computing cluster is a Linux-based system that can be accessed by using ssh (a good Windows ssh client is
PuTTY) and connecting to jinx-login.cc.gatech.edu
. This cluster can be used
for writing, compiling, and running your code. However, you are free to use any of the
available computing resources at GT, as well as your personal computing hardware,
and any operating system. You have
access to computers running the Linux operating system in Klaus 1448.
Grading, policies and procedures
projects will be posted to t-square.gatech.edu. There will be roughly 5-7 of them over
the course of the semester. It is
the responsibility of the student to check for projects on t-square
frequently. The last project may be
due during the last week of classes (‘dead week’). The procedure for turning in each
project may vary and will be detailed at the time the project is assigned. In general, you will have to provide
your source code.
policy for how to complete all of your programming assignments is simple. Every
student must turn his or her own work. You MAY NOT copy code from others in any
way. You MAY NOT use solutions that others have developed as the basis for your
solutions. However, you ARE allowed to discuss the problems with others,
including fellow students, teaching assistants, and the instructor. You ARE
allowed to solicit and obtain help in design and debugging your solutions. You
CAN show others your code and ask for advice about why it is not working or how
to make it work better. But to be totally clear, you MUST implement your own
solution. If someone helps you, you still MUST enter every line of code of your
solution personally, and you MUST fully understand every part of your
submission. Copied code, or code
copied with trivial changes (renamed variables and the like) is not allowed.
Assignments / Projects: 35%
Exam 1: 20%
Exam 2: 20%
course will be graded on a ‘curve’, so that the final course GPA is
in the range 2.4 – 2.8, per School of ECE guidelines.
class lectures will cover the material in a discussion format, where the
instructor will explain how do achieve certain goals using C++, and will expect
the students to participate with discussion and suggestions. The instructors
encourage (and expect) you to participate actively in the learning process. In
particular, we welcome your comments and questions as we cover material in
class. One-way lectures quickly becoming boring, both for you
and for me.
dates and other important announcements may be made in class, on t-square, or both.
Students are responsible for making themselves aware of the content of
all such announcements.
do not tell me what grade you need to earn in order to stay in school / receive
a scholarship / etc. Also, please
don’t ask about additional work you can perform to improve your
grade. All students will be graded equally
on the basis outlined above.
Grading individual students on any other basis would be unfair and