Notes, summaries, assignments, exams, and problems for Computer science

Clevo X170 Gaming Laptops: Comet Lake-S Power and Upgrades

Computer science2.63 KB

Fresh leaks from the Chinese forum Saraba1st point to the imminent release of refreshed Clevo gaming laptops powered by the new Comet Lake-S desktop-grade CPUs, expected to launch this spring. User Liaojings1 obtained internal slides detailing the upcoming X170 laptops, which replace the aging P7xx-series, finally bringing Clevo's designs in line with competitors like Dell/Alienware and MSI.

Chassis and Design Improvements

To accommodate desktop-grade CPUs, the X170 features a redesigned chassis with larger rear exhaust grills. Additional upgrades include:

  • Enhanced Audio: More powerful stereo speakers and a dedicated woofer.
  • RGB Lighting: Integrated lighting on the rear and underneath the chassis.

Display and Visuals

Clevo is adopting slim-bezel...

Continue reading "Clevo X170 Gaming Laptops: Comet Lake-S Power and Upgrades" »

Understanding Computer Viruses and Network Topologies

Computer science5.9 KB

A computer virus is a type of computer program that, when executed, replicates itself by modifying other computer programs and inserting its own code.[1] When this replication succeeds, the affected areas are then said to be 'infected' with a computer virus.[2][3]

Virus writers use social engineering deceptions and exploit detailed knowledge of security vulnerabilities to initially infect systems and to spread the virus. The vast majority of viruses target systems running Microsoft Windows,[4][5][6] employing a variety of mechanisms to infect new hosts,[7] and often using complex anti-detection/stealth strategies to evade antivirus software.[8][9][10][11] Motives for creating viruses can include seeking profit (e.g., with ransomware), desire...

Continue reading "Understanding Computer Viruses and Network Topologies" »

Multi-Threaded TCP Game Server Implementation

Computer science1.34 KB

Clientes ligam-se a servidor por TCP para jogarem. Pode ter entre 20 a 30 jogadores, de preferência 30, mas se jogador esperar mais de 1 minuto a partida começa com pelo menos 20. O jogador envia o nome ao servidor e fica à espera que o jogo comece e nessa altura é informado dos nomes dos outros.
1. Apresentar uma classe que implementa a interface em que os métodos têm que ser invocados em multi-thread.
Interface Jogo { List inscrever(String nome);}
public class Cliente {
public Cliente(Socket s) throws Exception {
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
BufferedReader bf = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedReader terminal = new BufferedReader(new InputStreamReader(System.in))
...
Continue reading "Multi-Threaded TCP Game Server Implementation" »

Linux Process Management: Deep Dive into Kernel Internals

Computer science27.36 KB

What is a Process?

A process is essentially a program in execution.

Lightweight Processes in Linux

Lightweight Processes (LWPs) in Linux are processes that offer better support for multithreaded applications.

Multithreaded Applications in Linux

A multithreaded application is designed to perform multiple tasks concurrently within a single process. In Linux, a straightforward way to implement multithreaded applications is to associate a lightweight process with each thread.

This approach allows threads to access the same set of application data structures by simply sharing the same memory address space, the same set of open files, and so on. Simultaneously, each thread can be scheduled independently by the kernel, meaning one thread may sleep while...

Continue reading "Linux Process Management: Deep Dive into Kernel Internals" »

Software Design Patterns: Enhancing Flexibility and Structure

Computer science3.73 KB

Design patterns offer proven solutions to recurring software design challenges, promoting code reusability, maintainability, and efficiency. They can be categorized into three main types:

Behavioral Design Patterns

These patterns focus on communication and interaction between objects, enhancing flexibility. Examples include:

  • Observer Pattern: Enables one-to-many dependencies, where changes in one object automatically notify dependent objects.
  • Iterator Pattern: Provides sequential access to elements within a collection without exposing its underlying structure.

Creational Design Patterns

These patterns address object creation mechanisms, ensuring suitable instantiation processes. Examples include:

  • Singleton Pattern: Restricts object creation to a single
...
Continue reading "Software Design Patterns: Enhancing Flexibility and Structure" »

Essential Tech Terms: A Comprehensive Glossary

Computer science4.83 KB

RAM (Random Access Memory)

Random Access Memory is one of two basic types of memory. Portions of programs are stored in RAM when the program is launched so that the program will run faster. Though a PC has a fixed amount of RAM, only portions of it will be accessed by the computer at any given time. Also called memory.

Scrolling

Scrolling allows lines displayed on the screen to be moved up or down by one line as a new line is added and an existing one is removed.

Shooter

A shooter is a game whose main focus is combat involving guns or other projectile weapons such as missiles.

Shopping Cart

A shopping cart is software that keeps track of what you buy on a site.

Software Engineer

A software engineer is a person that writes computer programs.

Speech Recognition

Speech

...
Continue reading "Essential Tech Terms: A Comprehensive Glossary" »

Understanding Computer Hardware and Software Essentials

Computer science2.9 KB

Computer Hardware

Core Components

CPU (Central Processing Unit)

The CPU controls and executes operations within the computer to process information. It consists of:

  • CU (Control Unit): Coordinates all computer activities and manages temporary data storage.
  • ALU (Arithmetic and Logic Unit): Performs basic data operations.

Memory

  • Random Access Memory (RAM): Enables reading and writing operations, allowing access to random memory locations.
  • Read Only Memory (ROM): Contains permanent instructions for computer startup, forming the BIOS (Basic Input Output System).

Input/Output Units

These units facilitate communication between the CPU, internal components, and external devices.

Buses

Buses enable efficient information exchange between computer components. Types...

Continue reading "Understanding Computer Hardware and Software Essentials" »

Low-Level Programming: Machine Language, Pep/8 Assembly, and Algorithms

Computer science3.92 KB

Computer Fundamentals and Data

A Computer is a programmable electronic device that can store, retrieve, and process data.

Data and Instructions: Instructions that manipulate data are logically the same as the data itself and can be stored in the same memory location.

Understanding Machine Language

Machine Language is a language made up of binary-coded instructions built directly into the computer's hardware and used by the processor.

Why Machine Language?

It is the fundamental language the hardware understands (no choice).

Characteristics of Machine Language

  • Every processor has its own unique set of machine instructions.
  • The relationship between the processor and the instructions it can carry out is completely integrated.
  • Each machine-language instruction
...
Continue reading "Low-Level Programming: Machine Language, Pep/8 Assembly, and Algorithms" »

Image Optimization and Exporting for Web Use

Computer science2.79 KB

Image Optimization Process

During image design and transformation, there's complete freedom. Optimization is applied at the end, before exporting the image to a web-compatible format.

Optimization involves three key steps:

  1. Selecting the best file format to manage file size.
  2. Adjusting format options and colors. Each format has specific compression controls, some limiting color palettes.
  3. Defining export options based on image use.

Common Export Formats

  • GIF (Graphics Interchange Format): Up to 256 colors, supports transparency, ideal for animations, logos, and images with transparent areas. Often used for vector graphics.
  • JPEG (Joint Photographic Experts Group): Best for photos and textured images, supports many colors, but has fewer image quality options.
...
Continue reading "Image Optimization and Exporting for Web Use" »

Project Planning and Control with Gantt Charts

Computer science2.67 KB

Gantt Chart: A Project Planning and Control Method

A Gantt chart is a graphical method of planning and control in which a project is divided into different activities, and estimates are made about how long each activity takes. This chart shows the timing relationships between events of a program and was developed by Henry L. Gantt. Gantt charts are useful for monitoring relatively small projects.

Understanding Key Concepts

  • Task: Project activities are carried out in a particular sequence.
    • Predecessor Task: A task that must start or finish before another can begin.
    • Successor Task: A task that depends on the start or finish of a preceding task.
    • Summary Tasks: These are made up of subtasks and summarize those subtasks.
  • Milestones: A task without duration
...
Continue reading "Project Planning and Control with Gantt Charts" »