ebylmz / gtu-cse

πŸŽ“ Gebze Technical University - Computer Engineering Assignments

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸŽ“ GTU-Assignments

Table of Contents

Description

This repository contains assignments from various computer engineering courses at Gebze Technical University. Each course directory includes assignments, code samples, and relevant materials.

Installation and Usage

Instructions for setting up the environment and running the assignments can be found in each course's respective directory. Make sure you have the required software and dependencies installed.

Courses

Introduction to programming with C language

  • Functions
  • Repetition
  • Selection
  • Modular Programming
  • Simple Data Types
  • Arrays
  • Strings & Pointers
  • Recursion
  • Structures & Unions
  • Dynamic Data Structures
  • Files

OOP concepts using C++ and Java languages

  • Inheritance
  • Polymorphism
  • Encapsulation
  • Abstraction

Fundamental data structures and algorithms with Java language

  • Arrays
  • Lists
  • Stack & Queue
  • Sets
  • Trees
  • Graphs
  • Maps
  • Sorting Algorithms

Designing and analyzing algorithms with different techniques

  • Asymptotic Notation & Algorithm Analysis
  • Brute Force
  • Exhaustive Search
  • Divide and Conquer
  • Decrease and Conquer
  • Dynamic Programming
  • Greedy

Introduction to computer hardware by analyzing MIPS architecture

  • Computer Performance
  • MIPS Instruction Set Architecture
  • MIPS Assembly
  • Computer Arithmetic
  • Single Cycle MIPS Datapath and Control
  • Multi-Cycle CPU
  • Pipelining
  • Pipelined MIPS Datapath and Control
  • Memory & Cache

Understanding the basic building blocks of programming languages. Defining a programming language with context-free grammar and analyzing a programming language based on language evaluation criteria

  • Paradigms
    • Imperative
      • Procedural
      • OOP
    • Declarative
      • Logic
      • Functional
      • Mathematical
  • Syntax & Semantics
    • Context Free Grammars & Backus-Nour Form
  • Variables
  • Data Types
  • Expressions
  • Exceptions
  • Procedures
  • ADT
  • OOP
  • Lisp & Prolog

Introduction to the field of operating systems, providing both theoretical foundations and practical insights into the design and implementation of modern operating systems

  • Evolution of Operating Systems
  • Process and Thread Management
  • Memory Management
    • Memory Hierarchies
    • Virtual Memory
    • Paging
    • Segmentation
    • Memory Allocation
  • File Systems
  • Input/Output Systems
    • Device Drivers
    • Interrupts
    • I/O subsystem design
  • Distributed Systems

Developing low-level software that interacts with hardware, operating systems, and other system components to create efficient and reliable computer systems

  • Processes
  • Files and I/O
  • Signals
  • Inter-Process Communication (IPC)
    • Pipes
    • FIFO
  • Synchronization between Processes
    • Semaphores
    • Shared Memory
  • POSIX Threads
  • Synchronization between Threads
    • Mutexes
    • Condition Variables
  • Socket Programming

About

πŸŽ“ Gebze Technical University - Computer Engineering Assignments

License:MIT License


Languages

Language:Jupyter Notebook 36.7%Language:C 20.6%Language:Java 19.2%Language:C++ 12.6%Language:HTML 3.5%Language:Verilog 2.3%Language:Python 2.1%Language:Common Lisp 1.5%Language:Makefile 0.4%Language:Assembly 0.4%Language:Stata 0.2%Language:Coq 0.1%Language:Yacc 0.1%Language:Lex 0.1%Language:Prolog 0.1%Language:Shell 0.0%Language:Standard ML 0.0%Language:Scheme 0.0%