University Notes
The BinaryTree ADT
Trending!
A tree is a nonlinear data structure used to
represent entities that are in some hierarchical relationship
• Examples in real life:
• Family tree
• Table of contents of a book
• Class inheritance hierarchy in Java
• Computer file system (folders and
subfolders)
• Decision trees
• Top-down design
149 Pages
2036 Views
0 Downloads
1.03 MB
Uploaded: 2025-02-02
Price: Ksh.170
Data Structures Singly and Doubly Linked Lists
Introduction
– Remember Linear List
• Array ( Done)
– Search, Modification,Insertion, Deletion
– Flow chart and Pseudo-codes
– Implementation
– Any Question
• Linked List ( Today)
• Stacks
• Queues
73 Pages
1867 Views
0 Downloads
173.23 KB
Uploaded: 2025-02-02
Price: Ksh.120
CMT 211: Object Oriented Programming II
Java is an object-oriented, class-based, concurrent, secured and general-purpose
computer-programming language which is a widely used and a robust technology.
What is Java-Java is a programming language and a platform.
• It is a high level, robust, secured and object-oriented programming language.
• It is also a Platform: A platform is any hardware or software environment in which a program runs. Remember Operating Systems are softwares that runs on hardware platforms, But Os also acts as platforms on which applications runs.
1939 Views
0 Downloads
566.18 KB
Uploaded: 2025-02-02
Price: Ksh.70
Introduction to Software Engineering Principles
Trending!
Introduction to Software Engineering Principles provides an overview of the fundamental concepts, methodologies, and best practices used in software development. It covers essential topics such as the software development lifecycle (SDLC), software design principles, requirements analysis, testing, and maintenance. The course emphasizes structured and agile development approaches, coding standards, and software quality assurance. By understanding these principles, students learn how to design reliable, scalable, and maintainable software systems, preparing them for real-world software engineering challenges.
8 Pages
2020 Views
0 Downloads
621.33 KB
Uploaded: 2025-02-02
Price: Ksh.50
Introduction to SQL
Introduction to SQL (Structured Query Language) provides a foundation for managing and manipulating relational databases. SQL is a standardized language used to create, retrieve, update, and delete data within databases. It consists of various commands categorized into Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), and Transaction Control Language (TCL). SQL enables users to define database structures, query data efficiently, and enforce security through permissions and access controls. Widely used in applications ranging from small-scale software to enterprise-level systems, SQL is essential for database administrators, developers, and data analysts.
6 Pages
228 Views
0 Downloads
620.17 KB
Uploaded: 2025-02-02
Price: Ksh.50
Data Structures and Algorithms in Java
Trending!
Building data structures and algorithms requires that we communicate detailed instructions to a computer. An excellent way to perform such communication is
using a high-level computer language, such as Java. In this chapter, we provide an
overview of the Java programming language, and we continue this discussion in the
next chapter, focusing on object-oriented design principles. We assume that readers
are somewhat familiar with an existing high-level language, although not necessarily Java. This book does not provide a complete description of the Java language
(there are numerous language references for that purpose), but it does introduce all
aspects of the language that are used in code fragments later in this book.
2120 Views
0 Downloads
1.13 MB
Uploaded: 2025-02-02
Price: Ksh.1000
Writing your own Shell
Writing your own shell involves creating a command-line interpreter that allows users to execute commands, manage processes, and interact with the operating system. This typically requires knowledge of system calls like fork(), exec(), and wait(), as well as handling user input, parsing commands, and implementing built-in functionalities such as changing directories or managing environment variables. A shell program continuously reads user commands, interprets them, and executes the appropriate actions, either by launching external programs or handling built-in operations. Advanced features can include piping, redirection, and job control, making the shell more powerful and user-friendly.
46 Pages
1719 Views
0 Downloads
1.2 MB
Uploaded: 2025-02-02
Price: Ksh.50
Introduction to Data Structures
Trending!
Computer System=Software+Hardware
Computer Software
Set of instructions that tells the hardware what to do, how to do it, and even when.
160 Pages
2196 Views
0 Downloads
693.46 KB
Uploaded: 2025-02-02
Price: Ksh.200
Introduction to UNIX systems programming
Introduction to UNIX systems programming involves learning how to interact with and develop software within the UNIX operating system. This includes understanding the system's architecture, its file management system, and the process control mechanisms. It covers essential concepts such as system calls, file descriptors, signals, and inter-process communication. The programming environment typically focuses on using the C programming language to interface with UNIX's kernel and libraries, enabling developers to create efficient, scalable applications. The goal is to provide a solid foundation for writing robust and optimized software that runs on UNIX-based systems.
18 Pages
1848 Views
1 Downloads
894.56 KB
Uploaded: 2025-02-02
Price: Ksh.50
Introduction to Shells and Scripting
Shells are command-line interfaces that allow users to interact with the operating system by typing commands. These commands can range from simple file manipulation to complex program execution. Scripting, on the other hand, involves writing a series of commands in a script file to automate tasks, streamline workflows, or execute repetitive actions. Shell scripting uses specialized languages such as Bash or PowerShell, enabling users to automate processes, manage system operations, and interact with programs efficiently. Understanding shells and scripting is essential for system administration, software development, and automating various computing tasks.
13 Pages
1831 Views
0 Downloads
646.79 KB
Uploaded: 2025-02-02
Price: Ksh.50
Review of Pointers and Memory Allocation
A review of pointers and memory allocation covers fundamental concepts in programming related to managing memory in a computer's RAM. Pointers are variables that store memory addresses, allowing indirect access to other variables. Understanding how to allocate and deallocate memory is essential for efficient resource management, especially in languages like C and C++. Memory allocation can be static (predefined at compile time) or dynamic (requested during runtime using functions like malloc and free). Proper memory allocation ensures that programs run efficiently, while improper handling can lead to issues like memory leaks and segmentation faults. This topic emphasizes pointer arithmetic, dereferencing, and techniques to ensure memory is correctly managed and freed when no longer needed.
20 Pages
1760 Views
0 Downloads
806.54 KB
Uploaded: 2025-02-02
Price: Ksh.50
Program Structure
Program structure refers to the organization and arrangement of various components within a software application or system. It defines how the program's elements, such as functions, modules, classes, and data structures, are organized and interact with each other. A well-structured program enhances readability, maintainability, and scalability by dividing complex tasks into smaller, manageable units. It also ensures efficient collaboration among developers, clearer documentation, and easier debugging. The structure can vary depending on the programming paradigm used, such as procedural, object-oriented, or functional programming, but its primary goal is to ensure that the program is logical, efficient, and easy to understand.
12 Pages
1727 Views
0 Downloads
816.9 KB
Uploaded: 2025-02-02
Price: Ksh.50
ICS 2405: Knowledge Based Systems Course Outline(KBS)
Buy Knowledge Based Systems (ICS 2405) and learn more about the design and implementation of systems that use knowledge representation, reasoning, and inference techniques to solve complex problems, including expert systems, rule-based systems, and AI applications.
2 Pages
1762 Views
0 Downloads
98.94 KB
Uploaded: 2025-02-02
Price: Ksh.50
Automated Reasoning
Automated reasoning is a field of artificial intelligence and mathematical logic focused on developing systems and algorithms that can automatically perform logical deductions and proofs. It involves using computational methods to determine the validity of statements, derive conclusions from premises, and solve problems that traditionally require human reasoning. Automated reasoning techniques are applied in various domains, such as formal verification of software and hardware systems, proving mathematical theorems, and optimizing decision-making processes in fields like robotics and artificial intelligence. The goal is to enhance efficiency, accuracy, and scalability in reasoning tasks.
604 Views
0 Downloads
521.5 KB
Uploaded: 2025-02-02
Price: Ksh.50
Reasoning and Uncertainty
Reasoning refers to the mental process of drawing conclusions, making decisions, or solving problems based on available information. It involves evaluating evidence, considering alternatives, and forming judgments. Uncertainty, on the other hand, arises when there is a lack of complete knowledge or clarity, making it difficult to predict outcomes or make definitive decisions. In reasoning, uncertainty can influence the confidence and reliability of conclusions, often requiring individuals to incorporate probabilistic thinking, assumptions, or estimation in the absence of perfect information. Balancing reasoning with an understanding of uncertainty is crucial for effective decision-making in complex or ambiguous situations.
1746 Views
0 Downloads
371 KB
Uploaded: 2025-02-02
Price: Ksh.50
Logic programming
Logic programming is a paradigm of programming based on formal logic, where programs are written as a set of logical statements or rules. These statements express relationships between objects and conditions, and the program operates by applying logical inference to derive conclusions from these facts and rules. The primary language used in logic programming is Prolog, which allows for declarative problem-solving by focusing on what the problem is, rather than how to solve it. The system automatically searches for solutions through backtracking, making it particularly useful in fields like artificial intelligence, natural language processing, and expert systems.
544 Views
0 Downloads
192.29 KB
Uploaded: 2025-02-02
Price: Ksh.50
Inference and Knowledge Processing
Inference and knowledge processing involve the use of logical reasoning and computational techniques to derive conclusions or insights from available data and information. Inference refers to the ability to make conclusions based on known facts, rules, or observations, often using deductive or inductive reasoning. Knowledge processing, on the other hand, encompasses the methods of collecting, organizing, analyzing, and interpreting knowledge to solve problems, make decisions, or enhance understanding. Together, these processes are fundamental in fields like artificial intelligence, cognitive science, and data analytics, enabling systems to simulate human-like reasoning and decision-making.
492 Views
0 Downloads
365.27 KB
Uploaded: 2025-02-02
Price: Ksh.50
Knowledge Representation
Knowledge representation (KR) is a field of artificial intelligence that focuses on how to formally model information about the world in a way that a computer system can understand, reason, and use to make decisions. It involves the creation of structures, such as graphs, rules, or ontologies, that capture relationships, concepts, and properties of objects in a domain. KR allows machines to simulate human-like reasoning and problem-solving by encoding knowledge in a structured form, facilitating tasks like natural language understanding, expert systems, and machine learning. The goal is to enable intelligent systems to process, infer, and act upon knowledge efficiently and accurately.
280 Views
0 Downloads
1.98 MB
Uploaded: 2025-02-02
Price: Ksh.50
Knowledge Engineering
Knowledge Engineering is the process of designing, building, and managing systems that enable computers to mimic human expertise in specific domains. It involves gathering, organizing, and structuring knowledge from human experts or existing sources, transforming it into a form that can be used by computer systems. This includes creating knowledge bases, designing inference mechanisms, and ensuring that the system can solve real-world problems effectively. Knowledge engineers work closely with domain experts to ensure that the knowledge captured is accurate and relevant. The field plays a crucial role in developing knowledge-based systems (KBS), artificial intelligence applications, and decision support tools that can replicate or augment human decision-making.
530 Views
0 Downloads
815.5 KB
Uploaded: 2025-02-02
Price: Ksh.50
Introduction to Knowledge Based Systems
Knowledge-Based Systems (KBS) are computer programs designed to simulate human expertise and decision-making processes by using a knowledge base and inference engine. The knowledge base consists of facts, rules, and heuristics that represent domain-specific knowledge, while the inference engine applies logical reasoning to derive conclusions or make decisions based on that knowledge. KBS are widely used in fields like medicine, engineering, and finance to assist with complex problem-solving tasks. These systems aim to provide solutions in situations where human expertise is limited or unavailable, enhancing efficiency, consistency, and decision-making accuracy.
308 Views
0 Downloads
1.11 MB
Uploaded: 2025-02-02
Price: Ksh.50