Bachelor Courses Review (Computer Science)
*Linear Algebra
Linear algebra is the branch of mathematics concerning linear equations. [wiki]
Core Knowledege
- Matrix
Matrix
Concept
In mathematics, a matrix is a rectangular array or table of numbers, symbols, or expressions, arranged in rows and columns, which is used to represent a mathematical object or a property of such an object.[wiki]
Application in Real Life
In computer graphics, matrices are used to describe geometric transformations of objects. Through matrix operations, operations such as translation, rotation, and scaling of objects can be realized, thereby generating various complex graphic effects.
In mathematics, matrices are often used to solve systems of linear equations. Matrix operations allow you to efficiently solve systems of linear equations with multiple unknowns.
Basic Operations
- Addition
- Multiplication
- Transposition
- Invertible Matrix
https://www.shuxuele.com/algebra/matrix-inverse-minors-cofactors-adjugate.html
Determinant
In mathematics, the determinant is a scalar value that is a function of the entries of a square matrix. The determinant of a matrix A is commonly denoted det(A), det A, or |A|. Its value characterizes some properties of the matrix and the linear map represented, on a given basis, by the matrix. In particular, the determinant is nonzero if and only if the matrix is invertible and the corresponding linear map is an isomorphism. The determinant of a product of matrices is the product of their determinants.
Cofactor Formula
Cramer’s Formula
*Further Mathematics
Further Mathematics is the title given to a number of advanced secondary mathematics courses. The term “Higher and Further Mathematics”, and the term “Advanced Level Mathematics”, may also refer to any of several advanced mathematics courses at many institutions.
Derivative
Integral
*College Physics
In a high school or college physics course, students typically learn about fundamental concepts such as motion, forces, energy, and electricity. They also study topics like thermodynamics, waves, optics, and modern physics, including quantum mechanics and relativity. The courses often include laboratory work to provide hands-on experience and reinforce theoretical concepts. Additionally, students may learn about the history of physics and its impact on society and technology.
Particle Kinematics
A branch of classical mechanics that describes the motion of different particles in space without considering the forces that cause such motion.
Displacement
In geometry and mechanics, a displacement is a vector whose length is the shortest distance from the initial to the final position of a point P undergoing motion. It quantifies both the distance and direction of the net or total motion along a straight line from the initial position to the final position of the point trajectory. A displacement may be identified with the translation that maps the initial position to the final position. Displacement is the shift in location when an object in motion changes from one position to another.
Speed
In everyday use and in kinematics, the speed (commonly referred to as v) of an object is the magnitude of the change of its position over time or the magnitude of the change of its position per unit of time; it is thus a scalar quantity. The average speed of an object in an interval of time is the distance travelled by the object divided by the duration of the interval; the instantaneous speed is the limit of the average speed as the duration of the time interval approaches zero. Speed is the magnitude of velocity (a vector), which indicates additionally the direction of motion.
Acceleration
In mechanics, acceleration is the rate of change of the velocity of an object with respect to time. Acceleration is one of several components of kinematics, the study of motion. Accelerations are vector quantities (in that they have magnitude and direction). The orientation of an object’s acceleration is given by the orientation of the net force acting on that object.
Newton’s laws of motion
- First Law
Every object perseveres in its state of rest, or of uniform motion in a right line, except insofar as it is compelled to change that state by forces impressed thereon. - Second Law
The change of motion of an object is proportional to the force impressed; and is made in the direction of the straight line in which the force is impressed. - Third Law
To every action, there is always opposed an equal reaction; or, the mutual actions of two bodies upon each other are always equal, and directed to contrary parts.
Work & Energy
In physics, work is the energy transferred to or from an object via the application of force along a displacement. In its simplest form, for a constant force aligned with the direction of motion, the work equals the product of the force strength and the distance traveled. A force is said to do positive work if when applied it has a component in the direction of the displacement of the point of application. A force does negative work if it has a component opposite to the direction of the displacement at the point of application of the force.
In physics, energy is the quantitative property that is transferred to a body or to a physical system, recognizable in the performance of work and in the form of heat and light. Energy is a conserved quantity—the law of conservation of energy states that energy can be converted in form, but not created or destroyed. The unit of measurement for energy in the International System of Units (SI) is the joule (J).
Work is used to quantify the change of Energy.
Electric field
Magnetic field
Probability Theory and Mathematical Statistics
Basics of Probability Theory
- Sample Space
- Event
- Probability
- Conditional Probability
- Independence
Random Variables and Distribution
- Random Variable
- Discrete Random Variable
- Continuous Random Variable
- Probability Mass Function, PMF
- Probability Density Function, PDF
- Cumulative Distribution Function, CDF
Distribution:
- Bernoulli Distribution
- Binomial Distribution
- Geometric Distribution
- Poisson Distribution
- Uniform Distribution
- Exponential Distribution
- Normal Distribution
Microcomputer and Interface Technology
Composition
Random Access Memory, Central Processing Unit (CPU), Storage, Operating System, Input and Output devices.
BUS: In computer architecture, a bus[^[1]] (historically also called data highway[^[2]] or databus) is a communication system that transfers data between components inside a computer, or between computers.
Input-Output Interface
In micro-computer base system, the only purpose of peripheral devices is just to provide special communication links for the interfacing them with the CPU. To resolve the differences between peripheral devices and CPU, there is a special need for communication links.
The major differences are as follows:
- The nature of peripheral devices is electromagnetic and electro-mechanical. The nature of the CPU is electronic. There is a lot of difference in the mode of operation of both peripheral devices and CPU.
- There is also a synchronization mechanism because the data transfer rate of peripheral devices are slower than CPU.
- In peripheral devices, data code and formats are different from the format in the CPU and memory.
- The operating mode of peripheral devices are different and each may be controlled so as not to disturb the operation of other peripheral devices connected to CPU.
Functions of Input-Output Interface:
- It is used to synchronize the operating speed of CPU with respect to input-output devices.
- It selects the input-output device which is appropriate for the interpretation of the input-output signal.
- It is capable of providing signals like control and timing signals.
- In this data buffering can be possible through data bus.
- There are various error detectors.
- It converts serial data into parallel data and vice-versa.
- It also convert digital data into analog signal and vice-versa.
Mode of Data Transfer between CPU and peripheral devices
- Programmed I/O.
- Interrupt- initiated I/O.
- Direct memory access( DMA).
Serial interfaces and parallel interfaces.
Machine Instructions
Machine Instructions are commands or programs written in the machine code of a machine (computer) that it can recognize and execute.
Machine Instructions Used in 8086 Microprocessor
Data transfer: MOV, IN, OUT, LEA, LDS, LES, PUSH, XCHG, XLAT,
Arithmetic: ADD, SUB, ADC, SBB, INC, DEC, NEG, CMP, MUL, DIV, IMUL, IDIV, CBW, CWD, AAA, AAS, AAM, AAD, DAA, DAS
Logic: NOT, AND, OR, XOR, TEST, SHL, SHR,SAL, SAR,ROL, ROR,RCL, RCR
String manipulation: MOVS, MOVSB, MOVSW, CMPS, SCAS, LODS, STOS
Control transfer: JMP, JNZ
Loop control: LOOP, LOOPE, LOOPNE, JCXZ, CALL, RET, INT, INTO
Processor control: STC, CLC, CMC, STD, CLD,PUSHF, POPF
What is termed as Opcode in Machine Instructions?
Opcode (Operation Code) specifies the operation or action to be performed, such as addition or subtraction. It is a part of machine instruction.
How machine instructions are executed by CPU?
Machine Instructions are executed by CPU in following manner: CPU fetches, decodes, and executes machine instructions sequentially from memory as part of its instruction cycle.
Principles of Compiler
A high-level programming language is a language that has an abstraction of attributes of the computer. High-level programming is more convenient to the user in writing a program.
The compiler is software that converts a program written in a high-level language (Source Language) to a low-level language (Object/Target/Machine Language/0, 1’s).
Stages of Compiler Design
- Lexical Analysis: The first stage of compiler design is lexical analysis, also known as scanning. In this stage, the compiler reads the source code character by character and breaks it down into a series of tokens, such as keywords, identifiers, and operators. These tokens are then passed on to the next stage of the compilation process.
- Syntax Analysis: The second stage of compiler design is syntax analysis, also known as parsing. In this stage, the compiler checks the syntax of the source code to ensure that it conforms to the rules of the programming language. The compiler builds a parse tree, which is a hierarchical representation of the program’s structure, and uses it to check for syntax errors.
- Semantic Analysis: The third stage of compiler design is semantic analysis. In this stage, the compiler checks the meaning of the source code to ensure that it makes sense. The compiler performs type checking, which ensures that variables are used correctly and that operations are performed on compatible data types. The compiler also checks for other semantic errors, such as undeclared variables and incorrect function calls.
- Code Generation: The fourth stage of compiler design is code generation. In this stage, the compiler translates the parse tree into machine code that can be executed by the computer. The code generated by the compiler must be efficient and optimized for the target platform.
- Optimization: The final stage of compiler design is optimization. In this stage, the compiler analyzes the generated code and makes optimizations to improve its performance. The compiler may perform optimizations such as constant folding, loop unrolling, and function inlining.
String: a finite sequence of alphabets
Language: collection of strings
Regular Expression: a sequence of characters that specifies a match pattern in text.
Nondeterministic Finite Automaton: there is more than one possible transition from one state on the same input symbol.
Deterministic Finite Automaton: there is only one transition
context-free grammar: is a formal grammar whose production rules can be applied to a nonterminal symbol regardless of its context.
Terminal symbols: Terminal symbols are symbols that may appear in the outputs of the production rules of a formal grammar and which cannot be changed using the rules of the grammar.
Nonterminal symbols: Nonterminal symbols are those symbols that can be replaced
ambiguity: If a grammar has a certain sentence pattern that corresponds to two different grammar trees, the grammar is called an ambiguous grammar.
*Cloud Computing Technology
- Types of Cloud Computing Services:
• Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet, such as virtual servers, storage, and networking.
• Platform as a Service (PaaS): Offers a platform for developers to build, deploy, and manage applications without having to worry about the underlying infrastructure.
• Software as a Service (SaaS): Delivers software applications over the internet on a subscription basis, eliminating the need for local installation and maintenance. - Benefits of Cloud Computing:
• Cost Savings: Cloud computing eliminates the need for upfront investments in hardware and software, and allows for pay-as-you-go pricing models.
• Scalability: Cloud computing services can be easily scaled up or down based on demand, providing flexibility and agility.
• Accessibility: Cloud services can be accessed from anywhere with an internet connection, enabling remote work and collaboration. - Security and Compliance:
• Cloud providers implement security measures to protect data and ensure compliance with regulations such as GDPR and HIPAA.
• Encryption, access controls, and regular security audits are common practices to safeguard data in the cloud. - Cloud Computing Platforms:
• Popular cloud computing platforms include Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, and IBM Cloud, offering a range of services for computing, storage, networking, and more.
Software Engineering
- Software Development Life Cycle (SDLC): The process of developing software applications typically follows a series of phases, including requirements gathering, design, implementation, testing, deployment, and maintenance.
- Software Design: The process of defining the architecture, components, interfaces, and data for a software application to meet the specified requirements.
- Programming Languages: Software engineers use programming languages such as Java, C++, Python, and JavaScript to write code for software applications.
- Software Testing: The process of evaluating a software application to ensure it meets the specified requirements and functions correctly. This may include unit testing, integration testing, system testing, and user acceptance testing.
- Software Maintenance: The ongoing process of updating, enhancing, and fixing bugs in software applications to ensure they remain functional and up-to-date with changing requirements and technologies.
Embedded Foundation
- Hardware Components: Embedded systems consist of hardware components such as microcontrollers, sensors, actuators, memory, and communication interfaces that are specifically designed for the intended application.
- Real-time Operating Systems: Embedded systems often require real-time operating systems (RTOS) to manage tasks and processes with precise timing constraints.
- Embedded Software Development: Embedded software is developed using programming languages such as C, C++, and assembly language to control the behavior of the hardware components and perform specific functions.
- Development Tools: Software engineers use integrated development environments (IDEs), compilers, debuggers, and simulators to develop, test, and debug embedded software.
- Interfacing and Communication: Embedded systems often require interfacing with external devices, sensors, and networks through communication protocols such as UART, SPI, I2C, Ethernet, and wireless protocols like Bluetooth and Wi-Fi.
- Power Management: Embedded systems are often designed to operate on limited power sources, so power management techniques such as low-power modes, sleep modes, and power optimization strategies are critical in embedded system design.
B/S System Design
- Client-Side Development: The client-side interface is typically developed using web technologies such as HTML, CSS, and JavaScript. The design should focus on creating a user-friendly interface that is accessible from various web browsers.
- Server-Side Development: The server-side logic is implemented using server-side programming languages such as Java, C#, PHP, or Node.js. The server processes requests from the client, performs business logic, and interacts with databases or other external systems.
- Communication Protocols: B/S systems typically use HTTP or HTTPS protocols for communication between the client and server. This allows for secure and reliable data exchange over the internet.
- Scalability and Performance: Design considerations should be made to ensure that the system can handle a large number of concurrent users and maintain performance under heavy loads. This may involve load balancing, caching, and other scalability techniques.
- Security: B/S system design should include security measures to protect against common threats such as cross-site scripting (XSS), SQL injection, and data breaches. This may involve implementing authentication, authorization, encryption, and other security features.
Principles of Database System
- Data Modeling: Data modeling involves designing the structure of the database, including defining tables, relationships between tables, and data attributes. In APS systems, data modeling is crucial for representing manufacturing processes, resources, scheduling constraints, and other relevant information.
- Data Integrity: Ensuring data integrity is essential in database systems to maintain the accuracy and consistency of data. APS systems rely on accurate and up-to-date data to generate optimal production plans and schedules.
- Query Optimization: Efficient query processing is critical in APS database systems to retrieve and manipulate data quickly. Proper indexing, data partitioning, and query optimization techniques are essential for optimizing database performance in APS applications.
- Data Security: Protecting sensitive manufacturing data is crucial in APS systems to prevent unauthorized access, data breaches, or tampering. Implementing access controls, encryption, and data backup strategies are essential for ensuring data security in APS database systems.
- Scalability and Performance: APS database systems need to be scalable to handle large volumes of manufacturing data and support complex scheduling algorithms. Ensuring high performance and scalability are key considerations in designing and managing database systems for APS applications.
Data Structure
Basic Concepts
- Data Structure
- Abstract Data Type, ADT
- Algorithm
Linear Data Structures
- Array
- Linked List
- Stack
- Queue
Tree Data Structure
- Tree
- Binary Tree
- Binary Search Tree, BST
- Heap
Graph
Hash
Complexity
- Time Complexity
- Space Complexity
- Worst-Case Analysis
- Average-Case Analysis
Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
Searching Algorithms
- Linear Search
- Binary Search
- Depth-First Search, DFS
- Breadth-First Search, BFS
Recursion
- Recursive Function
- Recursion Tree
Computer Composition
Computer Architecture
- Von Neumann Architecture
- Harvard Architecture
Number Representation
- Binary Number
- Two’s Complement
- Floating-Point Representation
- Fixed-Point and Floating-Point
Arithmetic Logic Unit
- Logic Operations
- Arithmetic Operations
- Shift Operations
Instruction Set
- Instruction Format
- Opcode
- Address Code
- Instruction Set Architecture, ISA
Memory
- Primary Memory
- Secondary Memory
- Cache Memory
- Virtual Memory
I/O
- Input/Output Devices
- I/O Interface
- I/O Control Methods
CPU
- Register
- Program Counter, PC
- Instruction Register, IR
- Control Unit, CU
Instruction Execution Cycle
- Instruction Fetch
- Decode
- Execute
- Memory Access
- Write Back
Microinstruction & Microprogrammed Control
Bus
- Data Bus
- Address Bus
- Control Bus
Computer Network
Network Basics
- OSI: Open Systems Interconnection Model
- TCP/IP: Transmission Control Protocol/Internet Protocol Suite
- Protocol
Physical Layer
- Transmission Media
- Signal
- Encoding Techniques
- Multiplexing Techniques
Data Link Layer
- Frame
- Media Access Control Address
- Ethernet
- Switch
Network Layer
- Internet Protocol Address
- Subnet Mask
- Routing
- Router
- Internet Control Message Protocol
- Address Resolution Protocol
Transport Layer
- Transmission Control Protocol
- User Datagram Protocol
- Port Number
- Flow Control
- Congestion Control
Session Layer
- Session Management
Presentation Layer
- Data Representation
- Encoding and Decoding
Application Layer
- HTTP(Hypertext Transfer Protocol)
- FTP(File Transfer Protocol)
- SMTP(Simple Mail Transfer Protocol)
- DNS(Domain Name System)
- DHCP(Dynamic Host Configuration Protocol)
Cyber Security
- Encryption
- SSL/TLS(Secure Sockets Layer/Transport Layer Security)
- Firewall
- Intrusion Detection System, IDS
- Virtual Private Network, VPN
Digital Logic
- Overview of digital systems, number systems, and Boolean algebra
- Logic Gates
- Combinational Logic
- Sequential Logic
- Digital Integrated Circuits
- Boolean Functions
- Logic Families
- Digital Timing
- Hazard Analysis
- Digital Simulation
Object-Oriented Programming Design
Basics of C++
Static typing, conditions, loops, functions, structs, and vectors
Basic OOP Concepts
Data hiding, encapsulation, and delegation
Pointers
Addresses, pointer types, pointers with const, dynamic memory
Copy Control and Move Semantics
Implementing the vector type
Cyclic Association and Separate Compilation
Class templates, operator overloading, iterators
Inheritance
Inheritance concepts and implementation
Generic Programming
Class and function templates
STL
Collections, containers, algorithms, functors, lambda expressions
Exceptions and Assertions
Error handling in C++
Operating System
Operating System Overview
- Definition of Operating System
- Functions of Operating System
- Classification of Operating Systems
Process Management
- Process
- Thread
- Process State
- Process Scheduling
- Deadlock
- Synchronization and Mutual Exclusion
Job Management
- Job
- Job Scheduling
- Batch Processing System
Memory Management
- Memory Allocation
- Address Translation
- Virtual Memory
- Page Replacement Algorithms
- Segmentation and Paging
File System
- File
- File System
- File Operations
- File Structure
- Directory Structure
- File Access Control
I/O Management
- Input/Output Devices
- I/O Control Methods
- Device Driver
- Buffering Techniques
Device Management
- Device Allocation
- Device Independence
- Disk Scheduling
Bachelor Courses Review (Computer Science)