- University: Salahaddin University-Erbil
- Department: Electrical Engineering Dept.
- My Status: Assistant Lecturer
- Level: BSc
- Year: 2010-2012
Course Description
This course provides a comprehensive introduction to programming fundamentals using C++ as the primary language. Designed specifically for electrical engineering students, the course emphasizes the importance of programming skills in solving real-world engineering problems, particularly in real-time systems and embedded applications.
The curriculum covers essential programming concepts including algorithms, data structures, control flow, functions, and object-oriented programming principles. Students will learn to design, implement, and debug C++ programs while understanding the theoretical foundations that underlie programming languages and software development.
Through hands-on projects and practical exercises, students will develop the programming skills necessary for electrical engineering applications, including microcontroller programming, signal processing, and system control.
Prerequisites
- Basic computer literacy
- High school mathematics (algebra and trigonometry)
- Logical thinking and problem-solving skills
- No prior programming experience required
Course Objectives
Upon completion of this course, students will be able to:
- Understand fundamental programming concepts and problem-solving techniques.
- Design and implement algorithms using flowcharts and pseudocode.
- Write, compile, and debug C++ programs for engineering applications.
- Apply programming concepts to solve electrical engineering problems.
- Understand the role of programming in real-time and embedded systems.
- Develop logical thinking and analytical problem-solving skills.
- Work with arrays, functions, and basic data structures in C++.
Course Outline
Module 1: Introduction to Programming and C++
- Programming fundamentals and problem-solving
- History and evolution of programming languages
- C++ language overview and features
- Development environment setup
- First C++ program and basic syntax
Module 2: Problem Solving and Algorithm Design
- Problem-solving methodology
- Algorithm design principles
- Flowchart creation and interpretation
- Pseudocode development
- Algorithm analysis and efficiency
Module 3: Basic Programming Elements
- Variables and data types in C++
- Constants and literals
- Input/output operations
- Basic arithmetic operations
- Type conversion and casting
Module 4: Control Flow and Decision Making
- Conditional statements (if, if-else, switch)
- Logical operators and boolean expressions
- Relational operators and comparisons
- Nested conditional statements
- Error handling and input validation
Module 5: Loops and Iteration
- While loops and do-while loops
- For loops and loop control
- Nested loops and loop optimization
- Break and continue statements
- Loop applications in engineering problems
Module 6: Functions and Modular Programming
- Function definition and declaration
- Parameters and return values
- Function overloading
- Scope and lifetime of variables
- Modular program design principles
Module 7: Arrays and Data Structures
- One-dimensional arrays
- Array manipulation and searching
- Two-dimensional arrays
- Character arrays and strings
- Array applications in engineering
Module 8: Pointers and Memory Management
- Pointer fundamentals and declaration
- Pointer arithmetic and array relationships
- Dynamic memory allocation
- Memory management best practices
- Common pointer pitfalls and debugging
Module 9: Object-Oriented Programming Basics
- Classes and objects in C++
- Encapsulation and data hiding
- Constructors and destructors
- Member functions and access control
- Simple class design and implementation
Module 10: File Handling and I/O
- File input/output operations
- Text file processing
- Binary file operations
- Error handling in file operations
- File applications in engineering
Module 11: Engineering Applications
- Mathematical computations and algorithms
- Signal processing basics
- Control system programming
- Data acquisition and processing
- Real-time programming concepts
Module 12: Advanced Topics and Best Practices
- Code organization and documentation
- Debugging techniques and tools
- Performance optimization
- Programming standards and conventions
- Introduction to embedded programming
Textbooks
- [Recommended] “C++ Programming: From Problem Analysis to Program Design” by D.S. Malik
- [Optional] “Programming: Principles and Practice Using C++” by Bjarne Stroustrup
- [Course Materials] C++ Lessons PDF
Assessment
- Midterm Exam (20%)
- Activities and Projects (30%)
- Programming Assignments (15%)
- Algorithm Design Projects (10%)
- Engineering Application Projects (5%)
- Final Exam (50%)