0% found this document useful (0 votes)
410 views18 pages

Computer Science Project Guidelines

The document outlines a B.Sc Semester I course on Fundamentals of Computer Science at the University of Calcutta, detailing major milestones in computer history, number systems, and algorithm operations. It includes a timeline of computer generations, a block diagram of a computer system, and a report on various number systems with their properties and applications. Additionally, it presents algorithms for searching, sorting, and checking prime numbers in arrays.

Uploaded by

AGRAG GHOSH
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
410 views18 pages

Computer Science Project Guidelines

The document outlines a B.Sc Semester I course on Fundamentals of Computer Science at the University of Calcutta, detailing major milestones in computer history, number systems, and algorithm operations. It includes a timeline of computer generations, a block diagram of a computer system, and a report on various number systems with their properties and applications. Additionally, it presents algorithms for searching, sorting, and checking prime numbers in arrays.

Uploaded by

AGRAG GHOSH
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

University of Calcutta

[Link] Semester I

Computer Science - Interdisciplinary


Course (under CCF)

Fundamentals of Computer Science


and their Applications

Paper Code: CMS- MD- IDC2- 2- P


CU Roll Number: 233017-11-0024
CU Registration Number:
017-1211-0585-23
Year: 2023
Date: ___________
INDEX :
1) Design a timeline that showcases the major milestones
and developments in the history of computers, highlighting
each generation of computers. In addition to this, design a
block diagram to demonstrate the essential components
that make up a computer system.
2) Design a well-organized report on different number
systems, their properties, historical significance and
applications. Provide at least two examples for each base
conversion.
3) Design an algorithm to perform the following operations:
a. Search a given element from an unordered array
b. Sort the unordered array in descending order.
c. Check whether a given number is prime or not.
1)Timeline of major milestones in the
history of COMPUTERS:
1. **First Generation (1940s - 1950s): Vacuum Tubes**
- ENIAC (Electronic Numerical Integrator and Computer), the
first general-purpose electronic computer, is completed in
1945.
- UNIVAC I (Universal Automatic Computer), the first
commercially produced computer, is delivered in 1951.
2. **Second Generation (1950s - 1960s): Transistors**
- Transistors replace vacuum tubes, leading to smaller
and more reliable computers.
- IBM introduces the IBM 1401, a popular second-
generation computer, in 1959.
3. **Third Generation (1960s - 1970s): Integrated
Circuits**
- Jack Kilby and Robert Noyce independently invent
the integrated circuit (IC) in 1958.
- IBM System/360, a groundbreaking family of
mainframe computers, is introduced in 1964.
4. **Fourth Generation (1970s - 1980s):
Microprocessors**
- Intel releases the first microprocessor, the 4004, in
1971.
- The personal computer era begins with the
introduction of the Altair 8800 in 1974.

5. **Fifth Generation (1980s - Present): Artificial


Intelligence**
- Advances in AI and parallel processing characterize
this generation.
- IBM's Deep Blue defeats Garry Kasparov in a chess
match in 1997, showcasing AI capabilities.

6. **Sixth Generation (Present - Future): Cognitive


Computing**
- Focus on natural language processing, machine
learning, and advanced robotics.
- Quantum computing emerges as a potential future
milestone.

**Block Diagram of a Computer System**

```
+----------------------------------------+
| Central Processing Unit (CPU) |
|+-------------------+-------------------+|
|| Arithmetic Unit | Control Unit ||
|+-------------------+-------------------+|
+----------------------------------------+
| Memory |
|+-----------------+-----------------+|
|| RAM (Random Access Memory) ||
|+-----------------+-----------------+|
+----------------------------------------+
| Input Devices |
|+-------------------------+|
|| Keyboard ||
|| Mouse ||
|| Microphone ||
|+-------------------------+|
+----------------------------------------+
| Output Devices |
|+------------------------+|
|| Monitor ||
|| Printer ||
|| Speakers ||
|+------------------------+|
+----------------------------------------+
| Storage Devices |
|+------------------------+|
|| HDD/SSD ||
|| Optical Drive ||
|| USB Drive ||
|+------------------------+|
+----------------------------------------+
```
This block diagram represents the essential components
of a computer system, including the CPU, memory, input
devices, output devices, and storage devices. Each
component plays a crucial role in the functioning of a
computer.
2)
Report on Number Systems: Properties, Historical Significance,
and Applications
Table of Contents
1) Introduction

2) Binary System

~Properties
~Historical Significance
~Applications
~~Example 1: Digital Computers
~~Example 2: Binary Code in Electronics
3) Decimal System

~Properties
~Historical Significance
~Applications
~~Example 1: Digital Computers
~~Example 2: Financial Transactions
4) Octal System

~Properties
~Historical Significance
~Applications
~~Example 1: Unix/Linux Permissions
~~Example 2: Compact Representation of Binary Data
5) Hexadecimal System

~Properties
~Historical Significance
~Applications
~~Example 1: Memory Addressing in Computing
~~Example 2: Color Representation in HTML
6) Conclusion

1. Introduction
Number systems are fundamental to mathematics and computer
science. They provide a way to represent and manipulate quantities. In
this report, we will explore different number systems, their properties,
historical significance, and applications.

2. Binary System

Properties
Base: 2
Digits: 0, 1
Place Value: Powers of 2

Historical Significance
The binary system has ancient roots, dating back to ancient China and
India. However, its application in modern computing is credited to the
work of George Boole and Claude Shannon in the mid-20th century.

Applications
Example 1: Digital Computers
All modern computers use the binary system to represent and process
information. The binary digits, or bits, form the basis of computer data
storage and computation.

Example 2: Binary Code in Electronics


In electronic circuits, binary code is used to represent logical states.
This has applications in digital signal processing, telecommunications,
and control systems.

3. Decimal System
Properties
Base: 10
Digits: 0-9
Place Value: Powers of 10

Historical Significance
The decimal system has ancient origins and is widely attributed to the
Hindus, who introduced it to the Western world through the Arabs.

Applications
Example 1: Everyday Arithmetic
The decimal system is used in everyday life for counting, measuring,
and performing arithmetic operations.

Example 2: Financial Transactions


In finance, the decimal system is essential for currency transactions,
accounting, and financial calculations.

4. Octal System

Properties
Base: 8
Digits: 0-7
Place Value: Powers of 8

Significance Historical
The octal system gained popularity in early computing when
programmers needed a convenient way to represent binary-coded
values more compactly.

Applications
Example 1: Unix/Linux Permissions
File permissions in Unix/Linux systems are represented using octal
numbers. Each digit in the octal number corresponds to a specific
permission.

Example 2: Compact Representation of Binary Data


Octal numbers are used to represent binary data more succinctly,
making it easier for humans to read and write machine-level
instructions.

5. Hexadecimal System

Properties
Base: 16
Digits: 0-9, A-F
Place Value: Powers of 16

Historical Significance
The hexadecimal system emerged in early computing as a more
compact representation of binary-coded values. It is widely used in
programming and digital electronics.

Applications
Example 1: Memory Addressing in Computing
Memory addresses in computer systems are often expressed in
hexadecimal, providing a convenient and concise way to represent
large binary numbers.

Example 2: Color Representation in HTML


In web development, colors are often represented using hexadecimal
notation. Each pair of digits corresponds to the intensity of the red,
green, and blue components.

6. Conclusion
In conclusion, number systems play a crucial role in various aspects of
mathematics and technology. Understanding their properties, historical
significance, and applications is essential for anyone working in fields
such as computer science, engineering, and mathematics. Each number
system discussed in this report has unique characteristics that make it
suitable for specific applications, contributing to the diverse and
interconnected world of numerical representation.
3)
Algorithm Operations On Array

// a. Search a given element from an unordered array

search(arr, n, x)
if arr[n-1] == x // 1 comparison
return "true"
backup = arr[n-1]
arr[n-1] = x

for i=0, i++ // no termination condition


if arr[i] == x // execute at most n times
// that is at-most n comparisons
arr[n-1] = backup
return (i < n-1) // 1 comparison

// b. Sort the unordered array in descending order

arr = [5, 2, 8, 7, 1];


temp = 0;
print("Elements of original array: ");
for i in range(0, len(arr)):
print(arr[i]),
for i in range(0, len(arr)):
for j in range(i+1, len(arr)):
if(arr[i] < arr[j]):
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;

print();

print("Elements of array sorted in descending order: ");


for i in range(0, len(arr)):
print(arr[i]),
// c. Check whether a given number is prime or not

num = int(input("Enter the number: "))

if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")

Common questions

Powered by AI

Binary, octal, and hexadecimal systems each have distinct characteristics and applications in computer science. The binary system is fundamental, using base 2 with digits 0 and 1, crucial for electronic and computer processing. Its application lies in digital computers and electronics where data is stored as bits . The octal system (base 8) represents binary data more compactly, simplifying coding in early computing systems and is used in Unix/Linux file permissions . The hexadecimal system (base 16) efficiently represents large binary numbers, widely applied in memory addressing and color coding in HTML, due to its compactness and ease of human comprehension .

The hexadecimal system is significant in modern computing due to its ability to represent large binary numbers compactly and readably. In practical applications, it is used in memory addressing, where it simplifies the representation of long binary sequences, making it easier for programmers to manage and navigate computer architecture. Additionally, in web development, hexadecimal notation is used to specify color values, with each color component (red, green, blue) represented as a two-digit hex value, allowing for precise and accessible color manipulation in digital design .

Understanding different number systems enhances programming and algorithm design by allowing programmers to optimize data representation and processing. For instance, base conversions are essential when interpreting binary-coded input in octal or hexadecimal, enabling programmers to work with compact representations, facilitating debugging and memory address manipulation. Mastery of number systems such as binary, octal, and hexadecimal supports efficient algorithm design, allowing for creative solutions to problems involving data encoding and manipulation, yielding faster, more efficient computational processes .

To determine if a number is prime, the algorithm checks divisibility starting from 2 up to the square root of the number. The process involves: (1) If the number is less than 2, it is not prime. (2) For numbers greater than 2, test divisibility using a loop starting from 2. (3) If any factor divides the number evenly, it confirms non-primality. Hence, an early exit upon finding a factor improves efficiency by reducing unnecessary checks, optimizing the algorithm's performance . This reflects computational efficiency by minimizing operations, particularly relevant for larger numbers.

The timeline of major computer milestones reflects the evolution of computing technology by chronologically detailing transformative innovations from the first generation (vacuum tubes) to contemporary advances in artificial intelligence and cognitive computing. Each technological leap, such as the transition from vacuum tubes to transistors and integrated circuits, not only advanced computational capabilities but also expanded societal impact, enabling new industries, enhancing communication, and increasing accessibility of information. Such progress has fundamentally altered human interaction with technology, setting the foundation for future developments in quantum computing and AI-driven applications .

The binary number system, with properties based on base 2 and digits 0 and 1, is integral to digital electronics and computing, providing a straightforward method for representing numerical data in digital systems. Historically, it roots back to concepts by George Boole and Claude Shannon who laid the groundwork for digital circuits. Its properties enable efficient data processing and storage in modern computers . The decimal system, using base 10, is historically attributed to ancient Indian mathematicians and spread to the Western world via Arabic scholars. Its ease of use in everyday arithmetic and financial transactions underpins its universal adoption for ordinary human activities .

Early computer generations faced significant challenges in hardware design, such as the physical size, heat output, and energy consumption of vacuum tubes, which limited computational speed and reliability. These constraints necessitated improvements, leading to the invention of transistors and integrated circuits, which were smaller, faster, and more reliable. The need to overcome computational limitations drove the development of microprocessors, enabling compact, affordable, and powerful computers. Such innovations laid the groundwork for personal computing and advanced technologies like artificial intelligence and quantum computing .

Advancements in artificial intelligence marked the fifth generation of computers, characterized by capabilities in learning, decision-making, and parallel processing. During this period, AI integrated into computing systems facilitated complex problem-solving and interactive technologies. A notable highlight includes IBM's Deep Blue defeating chess world champion Garry Kasparov in 1997, demonstrating AI's potential in strategic thinking and decision-making processes. This era also saw improvements in algorithms, machine learning techniques, and hardware that could support AI functions, paving the way for modern applications in science, industry, and consumer products .

The evolution from vacuum tubes to microprocessors significantly impacted the scale and capabilities of computers. The first generation, using vacuum tubes, established the foundation for electronic computing but was limited by size, cost, and energy consumption. Transitioning to transistors, the second generation saw reductions in size and increased reliability, allowing for more widespread use. Integrated circuits in the third generation further miniaturized components, enhancing computational power while reducing costs and improving efficiency. The fourth generation's microprocessors revolutionized personal computing, bringing powerful computing capabilities to a broader audience at lower prices and fostering innovation in software and applications .

The block diagram of a computer system outlines the interaction between various hardware components by visually representing the central processing unit (CPU), memory, input devices, output devices, and storage devices. The CPU, containing the arithmetic and control units, executes instructions and manages computational processes. Memory (RAM) stores data and instructions in use. Input devices (e.g., keyboard, mouse) and output devices (e.g., monitor, printer) facilitate user interaction with the computer. Storage devices (e.g., HDD, SSD) retain data long-term. This diagram helps in understanding how data flows and processes are managed within a computer .

You might also like