Programming for Electrical Engineers
Course Hours: Thursdays, 6PM-9PM
Room: 104
Instructor: Christopher Hong
e-mail: hong3@cooper.edu
Office Hours: after class Thursday (9PM-10PM) and by appointment
Textbooks are not required for the course, but they may be useful to have. These two are the two I recommend.
- The C Programming Language, 2nd Edition - Brian W. Kernighan & Dennis M. Ritchie
- Thinking in C++: Introduction to Standard C++, Volume One, 2nd Edition - Bruce Eckel
Other books that you may find useful are:
- Computer Science: A Structured Programming Approach Using C, 3rd Edition - Behrouz A. Forouzan and Richard F. Gilberg
- Practical C Programming, 3rd Edition - Steve Oualline
- C Programming: A Modern Approach, 2nd Edition - K. N. King
- The C++ Programming Language, 4th Edition - Bjarne Stroustrup
- Programming: Principles and Practice Using C++, 2nd Edition - Bjarne Stroustrup
- Programming Homework: 25%
- Quizzes 25%
- Final Project: 25%
- Final Exam: 25%
The best way to learn programming is through practice. There will be weekly programming homework. All assignments must be committed to github with a pull request by the specified deadline. You may work in pairs to complete these assignments, but if you do, make sure to have each person commit a solution to at least one problem. It is in your best interest to understand the solutions to each problem.
Assignments will be graded with the following criteria:
- Output: 50%
- Code Quality: 50%
Note: Late submissions will receive a 10% deduction to the final grade for the assignment.
- Course Overview, Intro to Unix, Github, Hello World, Variables, Types, Operations
- Relational & Logical Operators, Precedence, Conditional Statements, Basic Input/Output
- Quiz #1 - printf & conditionals
- Switch, Loops, Basic Arrays, Input/Output, Basic Functions, Tic-Tac-Toe
- More Loops, Tic-Tac-Toe, More about Functions, Program Structure, Make Files
- Quiz #2 - Loops & Arrays
- Pointers & Arrays
- Command-line Arguments, Pointers to Functions, Intro to Structures
- Quiz #3 - Pointers
- Structures, Github Forks
- Intro to C++ & Classes
- Quiz #4 - Structures
- Classes - Constructors, Destructors, Overloading, Default Arguments, Const, Inline Functions
- Classes - References, Copy Constructor, Operator Overloading, Inheritances & Composition
(no quiz)
- Debugging & Testing
- Quiz #5 - Classes
- C++ - Polymorphism, Virtual Functions
- Quiz #6 - Inheritance, Polymorphism, Virtual Functions
- C++ - Intro to Data Structures
- C++ - Intro to Algorithms
- Final Exam
- Final Presentations
- Note: Final Schedule is TBD