DCIT 104 Textbook PDF
Document Details
Uploaded by EasiestAlgebra
Joel Eugene Ansah
Tags
Summary
This document is a textbook on computer science, focusing on DCIT 104. The document covers the introduction to software, data types, and other important topics in computer science.
Full Transcript
COMPILED NOTES | JOEL ANSAH MY DCIT 104 TEXTBOOK JOEL EUGENE ANSAH Table of Contents MY DCIT 104 TEXTBOOK................................................................................................ 1 1.INTRODU...
COMPILED NOTES | JOEL ANSAH MY DCIT 104 TEXTBOOK JOEL EUGENE ANSAH Table of Contents MY DCIT 104 TEXTBOOK................................................................................................ 1 1.INTRODUCTION TO COMPUTER SOFTWARE AND PROGRAMMING............................ 2 SOFTWARE DEVELOPMENT LIFE CYCLE(PRADITeD)..................................................... 5 SOME SAMPLE QUESTIONS.................................................................................... 9 DATA TYPES , VARIABLES,OPERATORS...................................................................... 12 SOME QUESTIONS UNDER SECTION 3.................................................................. 17 CONTROL STRUCTURES 1-BRANCHING/CONDITIONS.............................................. 22 Control Structures: Branching and Conditions....................................................... 22 Branching.............................................................................................................. 22 Conditions............................................................................................................. 23 Iteration: Loops..................................................................................................... 23 Iteration Logic and Loops: for, while, do-while loops............................................... 24 for Loop................................................................................................................ 24 while Loop............................................................................................................ 25 DO WHILE LOOP.................................................................................................. 26 Sample Questions.................................................................................................. 26 FUNCTIONS AND ARRAYS........................................................................................ 28 Functions............................................................................................................ 28 Arrays.................................................................................................................. 28 Basic Programming, Structures, and Algorithms..................................................... 28 Working with Arrays of Different Dimensions.......................................................... 29 FU NDAMENTALS OF PROGRAMMING...................................................................... 32 PEOGRAMMING PARADIGMS................................................................................... 35 ONE PAGE REPORT ABOUT CONCURRENCY AND PARALLELISM............................. 39 GARBAGE COLLECTION AND HOW IT IS ACHIEVED IN JAVA.................................... 41 1|Page COMPILED NOTES | JOEL ANSAH OBJECT ORIENTED PROGRAMMING......................................................................... 44 ARCHITECTURE OF THE WEB................................................................................... 51 Sample Objective Questions.................................................................................... 53 DATABASE FUNDAMENTALS..................................................................................... 55 SOFTWARE TESTING................................................................................................ 60 1.INTRODUCTION TO COMPUTER SOFTWARE AND PROGRAMMING. Computer Software Computer software refers to the programs and instructions that direct the operation of a computer system and perform specific tasks. It is the intangible component of a computer system, as opposed to the physical hardware. Examples of Computer Software Some common examples of computer software include: - Operating systems (e.g. Windows, macOS, Linux) - Web browsers (e.g. Chrome, Firefox, Safari) - Office productivity suites (e.g. Microsoft Office, Google Workspace) - Media players (e.g. VLC, Windows Media Player) - Antivirus and security software - Programming languages and development tools - Video games - Mobile apps Types of Computer Software 2|Page COMPILED NOTES | JOEL ANSAH Computer software can be broadly classified into two main categories: system software and application software. System Software System software is the low-level software that provides the basic functions and services required for a computer to operate. It acts as an interface between the hardware and the user or application software. Examples of system software include: 1. Operating Systems: These manage the computer's resources, such as memory, storage, and input/output devices. Examples include Windows, macOS, Linux, and Android. 2. Device Drivers: These are software components that enable the operating system to communicate with and control hardware devices, such as printers, scanners, and network cards. 3. Utility Programs: These are small programs that perform specific system maintenance or optimization tasks, such as disk defragmentation, virus scanning, and backup. 4. Firmware: This is low-level software that is embedded in the hardware and provides basic control and configuration of the device. Application software, also known as end-user programs, are designed to help users perform specific tasks or achieve specific goals. These programs are built on top of the system software and provide functionality for various purposes. Examples of application software include: 1. User Programs: These are software applications designed for personal or home use, such as word processors, spreadsheets, media players, and web browsers. 2. Commercial Packages: These are software applications designed for business or professional use, such as enterprise resource planning (ERP) systems, customer relationship management (CRM) software, and accounting software. 3. Specialized Applications: These are software applications designed for specific industries or domains, such as computer-aided design (CAD) software, medical imaging software, and scientific simulation software. 4. Mobile Apps: These are software applications designed for use on mobile devices, such as smartphones and tablets, and provide a wide range of functionalities, from productivity to entertainment. 3|Page COMPILED NOTES | JOEL ANSAH In summary, computer software is the essential component that enables computers to perform a wide range of tasks and functions. It can be classified into system software, which provides the basic infrastructure, and application software, which provides the specific functionality for users and businesses.. 4|Page COMPILED NOTES | JOEL ANSAH SECTION 2 SOFTWARE DEVELOPMENT LIFE CYCLE(PRADITeD) Software Development Lifecycle (SDLC) Definition: The Software Development Lifecycle (SDLC) is a process used by software developers to design, develop, and test high-quality software. It involves a series of steps that provide a framework for planning and managing the development process. Examples: 1. Developing a Mobile App: Creating a new mobile application for tracking fitness activities. 2. Building a Website: Designing and developing a website for an online store. 3...Creating a Game:.. Making a new video game for entertainment.... Steps in the SDLC 1...Planning and Requirements Gathering.. 2...Defining Requirements.. 3...Software Design.. 4...Building Software.. 5...Testing Software.. 6...Deploying Software..... Explanation for a 5-Year-Old 1...Planning and Requirements Gathering:.. -..Explanation:.. Imagine you want to build a really cool LEGO castle. First, you need to think about what kind of castle you want. Do you want it to have a big tower or a drawbridge? You also need to find all the LEGO pieces you'll need. 5|Page COMPILED NOTES | JOEL ANSAH -..Example:.. You decide you want a castle with a tall tower and a big door. You look through your LEGO box to find the pieces. 2...Defining Requirements:.. -..Explanation:.. Now, you draw a picture of your castle and write down all the pieces you need. This way, you know exactly what your castle should look like and what pieces you need to find. -..Example:.. You draw a castle with a tower and a door, and you list that you need 4 big blocks for the tower and 2 small blocks for the door. 3...Software Design:.. -..Explanation:.. Next, you decide how to put the pieces together. You make a plan on how to start building the base and then add the tower and the door. -..Example:.. You decide to start with the base, then build the tower on top, and finally add the door. 4...Building Software:.. -..Explanation:.. Now, you start building your castle with the LEGO pieces. You follow your plan step by step. -..Example:.. You put together the base, then build the tower, and finally add the door, just like you planned. 5...Testing Software:.. -..Explanation:.. After building the castle, you check if everything is right. You see if the tower is tall enough and if the door opens and closes properly. -..Example:.. You make sure the tower is not falling over and that the door can open and close. 6...Deploying Software:.. 6|Page COMPILED NOTES | JOEL ANSAH -..Explanation:.. Finally, you show your castle to your friends. You let them play with it and see if they like it. -..Example:.. You invite your friends over and they play with your LEGO castle and say it's really cool.... Problem Example and Solution Using SDLC..Problem: Creating a Homework Tracker App....1. Planning and Requirements Gathering:.. -..Identify the Need:.. Students need an app to track their homework assignments. -..Gather Requirements:.. Talk to students and teachers to understand what features they want, like adding assignments, setting due dates, and getting reminders...2. Defining Requirements:.. -..Define Features:.. The app should allow students to: - Add new assignments. - Set due dates. - Receive notifications before due dates. -..Technical Requirements:.. The app should work on both Android and iOS devices...3. Software Design:.. -..Design UI:.. Create a simple and user-friendly interface where students can easily add and view assignments. 7|Page COMPILED NOTES | JOEL ANSAH -..Database Design:.. Plan how to store assignment details, like name, due date, and notification settings...4. Building Software:.. -..Develop the App:.. Write the code to create the app according to the design. Use tools and languages suitable for mobile app development, like Java/Kotlin for Android and Swift for iOS. -..Implement Features:.. Add functionality to add assignments, set due dates, and send notifications...5. Testing Software:.. -..Test Functionality:.. Check if the app correctly adds assignments, sets due dates, and sends notifications. -..User Testing:.. Ask a few students to use the app and provide feedback...6. Deploying Software:.. -..Release the App:.. Make the app available on app stores (Google Play and Apple App Store). -..Monitor and Update:.. Collect feedback from users and update the app to fix any issues and add new features. Using the SDLC, the problem of tracking homework can be addressed systematically, ensuring a high-quality and functional app is developed. 8|Page COMPILED NOTES | JOEL ANSAH SOME SAMPLE QUESTIONS Here are some sample questions that could be asked based on the piece provided about the Software Development Lifecycle (SDLC), tailored for an online examination on Sakai:... Multiple Choice Questions (MCQs) 1...Which of the following is the first step in the Software Development Lifecycle (SDLC)?.. - a) Software Design - b) Testing Software - c) Planning and Requirements Gathering - d) Deploying Software 2...In the Software Development Lifecycle, what does the 'Testing Software' step involve?.. - a) Writing the code for the software - b) Checking if the software works correctly - c) Defining what the software should do - d) Deploying the software to users 3...Which step in the SDLC involves creating a simple and user-friendly interface?.. - a) Planning and Requirements Gathering - b) Software Design - c) Building Software - d) Testing Software... True/False Questions 4...True or False: 'Building Software' is the step where you plan what the software should look like and how it should function... 9|Page COMPILED NOTES | JOEL ANSAH - True - False 5...True or False: In the 'Deploying Software' step, you make the software available to users and collect feedback for future improvements... - True - False... Short Answer Questions 6...Explain the importance of the 'Planning and Requirements Gathering' step in the Software Development Lifecycle... 7...Describe the main activities involved in the 'Software Design' step of the SDLC...... Essay Questions 8...Discuss how the Software Development Lifecycle can be applied to develop a homework tracker app, outlining each step in the process... 9...Identify potential challenges that might arise during the 'Testing Software' step and suggest ways to address them...... Scenario-Based Questions 10...Imagine you are developing a new mobile app for tracking fitness activities. List the steps you would follow according to the Software Development Lifecycle and explain what you would do in each step... 11...You are tasked with building a website for an online store. Describe how you would gather requirements from stakeholders and what methods you would use to ensure you understand their needs correctly...... Matching Questions 10 | P a g e COMPILED NOTES | JOEL ANSAH 12...Match the SDLC steps with their descriptions:.. | SDLC Step | Description | |----------------------------|----------------------------------------------| | Planning and Requirements Gathering | Collecting and defining what the software should do | | Software Design | Creating the architecture and design of the software | | Building Software | Writing the code and creating the software | | Testing Software | Ensuring the software works as intended | | Deploying Software | Releasing the software to users | By incorporating these types of questions, you can assess students' understanding of the SDLC comprehensively, covering both theoretical knowledge and practical application. 11 | P a g e COMPILED NOTES | JOEL ANSAH SECTION 3. DATA TYPES , VARIABLES,OPERATORS.... Data Types..Explanation:.. Data types are like different kinds of containers we use to store different things. Just like we use different containers for water, food, and toys, we use different data types to store different kinds of data in programming...Example:.. Imagine you have a box for keeping your toy cars, another box for keeping your books, and a bottle for keeping water. Similarly, in programming, we have different types of data, and we need to use the right type to store it..... Variables..Explanation:.. A variable is like a box with a label on it where you can store something. You can put something inside the box, take it out, or replace it with something else...Example:.. If you have a box labeled "Age," you can put the number 10 inside it. If you want to change it later, you can replace 10 with 11..... Operators..Explanation:.. Operators are like tools you use to do something with the variables, like adding two numbers, comparing them, or checking if one is bigger than the other...Example:.. If you have two boxes, one with the number 5 and another with the number 3, you can use an operator to add them together to get 8.... Refined Definitions and Examples.... Data Types..Definition:.. Data types specify the kind of data that a variable can hold, such as integers, floating-point numbers, characters, or more complex data structures...Examples:.. -..int:.. Holds integer values (e.g., 5, -3, 42) -..float:.. Holds decimal values (e.g., 3.14, -0.5) -..char:.. Holds a single character (e.g., 'a', 'Z') 12 | P a g e COMPILED NOTES | JOEL ANSAH.... Variables..Definition:.. A variable is a named storage location in memory that can hold a value, which can be changed during program execution...Examples:.. -..int age = 25;.. (age is a variable of type int holding the value 25) -..float height = 5.9;.. (height is a variable of type float holding the value 5.9) -..char grade = 'A';.. (grade is a variable of type char holding the value 'A').... Operators..Definition:.. Operators are symbols that perform operations on variables and values, such as arithmetic operations, comparisons, or logical operations...Examples:.. -..Arithmetic Operators:.. + (addition), - (subtraction),. (multiplication), / (division) -..Comparison Operators:.. == (equal to), != (not equal to), > (greater than), < (less than) -..Logical Operators:.. && (logical AND), || (logical OR), ! (logical NOT)... Primitive Data Types and Reference Data Types.... Primitive Data Types..Definition:.. Primitive data types are basic data types provided by a programming language as building blocks. They hold simple values directly...Examples:.. -..int:.. Integer values (e.g., 10, -20) -..float:.. Floating-point numbers (e.g., 3.14, -2.5) -..char:.. Single character (e.g., 'A', 'b') -..bool:.. Boolean value (e.g., true, false) 13 | P a g e COMPILED NOTES | JOEL ANSAH.... Reference Data Types..Definition:.. Reference data types are more complex data types that refer to objects. They store references (addresses) to the actual data...Examples:.. -..Arrays:.. Collection of elements of the same type (e.g., int arr = {1, 2, 3, 4, 5};) -..Strings:.. Sequence of characters (e.g., string name = "John"; in C++) -..Classes:.. Custom data types created by the programmer (e.g., class Car { public: string model; int year; };)... Basic C++ Code Examples.... Using Primitive Data Types ```cpp.include using namespace std; int main() { // Primitive data types int age = 25; // integer float height = 5.9; // floating-point number char grade = 'A'; // character bool isStudent = true; // boolean // Printing primitive data types cout