What is the difference between microcontroller and microprocessor?
A microcontroller contains a CPU, memory, and I/O peripherals all integrated onto a single chip, while a microprocessor typically only contains the CPU.
Explain the concept of Object-Oriented Programming (OOP).
OOP is a programming paradigm based on the concept of "objects," which can contain data in the form of fields (attributes or properties) and code in the form of procedures (methods or functions). It emphasizes modularity and reusability of code.
What is the difference between C and C++?
C is a procedural programming language, while C++ is a superset of C that also supports object-oriented programming.
Describe the principles of Agile software development.
Agile emphasizes iterative development, frequent collaboration between cross-functional teams, continuous improvement, and customer involvement throughout the development process.
What is the importance of version control systems like Git?
Version control systems like Git help track changes to source code, facilitate collaboration among developers, enable branching and merging of code, and provide a backup of project history.
Explain the difference between RAM and ROM.
RAM (Random Access Memory) is volatile memory used for temporary data storage during program execution, while ROM (Read-Only Memory) is non-volatile memory used for storing firmware and other permanent data.
What is the purpose of an interrupt in microcontrollers?
Interrupts allow a microcontroller to respond to external events in real-time, enabling it to handle time-sensitive tasks without continuous polling.
Describe the OSI model and its layers.
The OSI (Open Systems Interconnection) model is a conceptual framework that standardizes the functions of a telecommunication or computing system into seven abstraction layers, ranging from the physical layer to the application layer.
What is the role of a compiler in software development?
A compiler translates high-level programming languages into machine code that can be executed by a computer, enabling developers to write code in a human-readable format.
Explain the concept of multithreading and its advantages.
Multithreading allows multiple threads to execute concurrently within a single process, enabling better utilization of CPU resources and improved responsiveness in applications.
What is the importance of data normalization in databases?
Data normalization reduces redundancy and improves data integrity by organizing data into tables with minimal duplication and adhering to certain rules to ensure consistency.
Describe the difference between TCP and UDP protocols.
TCP (Transmission Control Protocol) provides reliable, connection-oriented communication with error-checking and flow control, while UDP (User Datagram Protocol) provides fast, connectionless communication with minimal overhead.
What is the significance of the 'volatile' keyword in C programming?
The 'volatile' keyword indicates that a variable's value may be changed unexpectedly by external factors, such as hardware interrupts, and should not be optimized or cached by the compiler.
Explain the concept of Big O notation and its significance in algorithm analysis.
Big O notation is used to describe the worst-case time complexity of an algorithm as a function of the input size. It helps analyze and compare the efficiency of algorithms in terms of their scalability.
What are pointers in C programming and how are they used?
Pointers are variables that store memory addresses, allowing direct access to memory locations. They are used for dynamic memory allocation, passing parameters by reference, and implementing data structures like linked lists.
Describe the difference between dynamic and static linking in C/C++.
Dynamic linking links executable code with libraries at runtime, while static linking links code with libraries at compile time, resulting in a standalone executable file.
What is the purpose of a firewall in network security?
A firewall filters network traffic based on predetermined security rules to prevent unauthorized access and protect against threats such as malware and denial-of-service attacks.
Explain the principles of Object-Relational Mapping (ORM).
ORM is a programming technique that maps objects from an object-oriented programming language to data stored in relational databases, allowing developers to interact with databases using object-oriented paradigms.
Describe the difference between HTTP and HTTPS protocols.
HTTP (Hypertext Transfer Protocol) is a protocol for transmitting data over the internet, while HTTPS (HTTP Secure) is a secure version of HTTP that encrypts data using SSL/TLS to ensure confidentiality and integrity.
What is the role of a bootloader in embedded systems?
A bootloader is a small program that initializes the system and loads the operating system or application into memory from non-volatile storage, such as flash memory, during the boot process of an embedded system.