# Recap (Winter 2017)

Hello its a me again drifter1! After the first recap of Summer 2017, we now are finally at the point where another recap is needed! I uploaded so much stuff about many** differenent topics of computer science and information technology**, like programming, logic design, networking, mathematics and even more like physics, game design (development) or even app development are in my standby list. The coordination in my blog has become very difficult, because of so many different types of content I have uploaded! It's hard to find exactly what you are looking for and that's exactly why I do this kind of posts! The first recap covered all the posts uploaded till then. This post will contain every single post uploaded 'till this post and so everything I uploaded in 2017, where I started steeming more frequently! This kind of posts take up a lot of time, effort and patience, and I hope that you appreciate it! So, without further do, let's get straight into it!

# PROGRAMMING:

Let's start out with my first Category called Programming and split it with the programming languages!

## C:

**Basics**

C Beginner Codes -> I got into the Basics of C Programming on 2 Example Codes

C Beginner Arrays -> In this post we extended the previous Codes using Arrays and also random

C Pointers, String and Files -> We talked about Pointers, Strings, File and Functions!

C Dynamic Memory Allocation -> I talked off malloc/realloc and used it on an Example Code

C Structs and Switch Case -> I created a switch case menu that handles a struct

**Datastructures**

C Recursive Algorithms -> We got into Recursions as an reminder for the next posts

C Linked Lists -> We talked about the Linked List Implementation in C

C Binary Trees -> We got into Simple Binary Trees in C

C Queues using Arrays -> Implemetation of a Queue using Arrays

C Stacks using Arrays -> Implementation of a Stack using Arrays

C Queues using Linked Lists -> Implementation of a Queue using a List

C Stacks using Linked Lists -> Implementation of a Stack using a List

C Advanced Lists and Queues -> Double, Circular Linked Lists and Priority Queues

C Advanced Trees -> AVL (implemented), Red-Black (featured) and 2-3 Trees (featured)

C Stack-Queue Exercise using Dynamic Arrays -> Exercise for Stacks-Queues with Arrays

C Stack-Queue Exercise using Linked Lists -> Edited Exercise, but using Lists

C Hashtables with Chaining -> Hashtable Theory and Implementation with Chaining

C Hashtables with Linear Probing -> Implementation with Linear Probing

**Other**

Can I run a Dual Monitor Setup? (C Code) -> Calculate Angle using Law of Cosines

C Function Comparison -> Compare Functions using Time or Iterations

## Java:

**Basics**

From C To Java -> I talked off Objects/Classes (introduction), Scanner Input, Printing and Arrays

Java Classes and Methods -> We got into Constructors, Getters-Setters, ToString() and User Defined Methods

Java Composition and ArrayList -> We talked about Java Composition and ArrayLists

Java Inheritance -> We talked about Inheritance (extends), Abstract Classes and super.toString()

Java Interfaces -> We talked about Interfaces (implements) and Abstract Methods

Java Exceptions -> We got into Exceptions using the try-catch statement

Java Files -> We got into Textfiles and Binary Files using serializable

Java All-In-One Exercise -> University Task edited to contain only Basics

Java All-In-One Exercise (Solution) -> Solution to the Task

**Data Structures**

Java Data Structures -> Implementing Lists, Stacks and Queues in Java

Java Graphs Introduction -> Graph Theory and Implementation

Java Graph Traversal Algorithms -> BFS and DFS Traversal Algorithms

Java Graph Minimum Spanning Tree Algorithms -> Prim and Kruskal MST Algorithms

Java Graph Shortest Path Algorithm (Dijkstra) -> Dijkstra Algorithm

Java Graph Shortest Path Algorithm (Bellman-Ford) -> Bellman-Ford Algorithm

Java Graph All Pair Shortest Path Algorithms (Floyd-Warshall/Johnson) -> Floyd-Warshall and Johnson Algorithms

Java Graph Maximum Flow Algorithm (Ford-Fulkerson) -> Ford-Fulkerson Algorithm

Java Graph (Backtracking) Hamiltonian Circuit Algorithm -> Backtracking Hamiltonian Cycle Algorithm

Java Graph Eulerian Circuit Detection Algorithm -> Eulerian Cycle Detection Algorithm

More Graph Algorithms are yet to come...

**GUI**

Java GUI (awt) -> Getting into GUI Programming using the awt library

Java GUI (swing) -> Extend previous Knowledge using the swing Library and JOptionPane's

Java GUI Events and Listeners -> Getting into Events and ActionListeners

Java GUI Examples -> Examples of GUI's that implement everything told

Java All-In-One Exercise Extended -> Previous Task Edited to include GUI

Java All-In-One Exercise Extended (Solution) -> Solution to the Task

Java Web Applets -> Writing a Applet in Java

## Assembly:

**Basics**

Assembly Basic Coding Structure -> Introduction to Assembly

Assembly Input/Output Calls -> System Calls to Input and Output

Assembly Branches and Jumps -> Getting into Branches, Jumps that help us write if, for, while statements

Assembly Arrays and Memory Instructions -> Arrays and sw, lw instructions

Assembly Code Examples -> Examples to make sure everything until now is understandable

**Advanced**

Assembly Functions and Pseudodynamic Arrays -> Switch case that calls functions for an pseudodynamic Array

Assembly Stack and Recursive Algorithms -> Stack Introduction and 3 Recursion Code Examples

Assemly Heap Memory Allocation -> Heap Allocation and Dynamic Memory

Assembly File Inputs/Output Calls -> File Input and Output using System Calls

Assembly Stack Datastructure -> Stack Implementation in Assembly

Assembly Floating Point Register Example (Trading Profit Calculator) -> Floating Point Register Example

Compiler Project is yet to come!

# LOGIC DESIGN:

** Theory**

Numeral Systems -> Numeral Systems, Conversions, Operations

Logical (Boolean) Functions -> Boolean Expressions, Truth Tables, Minterms, Maxterms

Boolean Algebra and Simplification Theorems -> Boolean Algebra, Laws and De Morgan

Karnaugh Map Simplification -> Karnaugh Maps

Basic Logic Gates -> NOT, OR, AND, XOR and XNORGates

Universal Logic Gates -> NOR and NAND Logic

From Function to Circuits using Multi-Input Gates -> Multi-Inputs Gates and Tips

Adder Circuits -> Half, Full and N-bit Adder Circuits

Multiplexer, Encoder and Decoder Circuits -> MUX, Encoder and Decoder Circuits

Waveforms and Clocks -> Waveforms and Clocks, How to test all Inputs

Latches and Flip Flops -> Latches and D, T, JK Flip Flops

Sequential (Synchronous) Circuits -> State Table, Equations and Diagram

Quine McCluskey (Tabular) Simplification Method -> Example Tabular Simplication

Statetable Simplification and Implementation with one-hot encoding -> Staircase DFF Implementation

Binary Decision Diagrams -> Binary Decision Trees, Diagrams and ROBDD's

**Multisim Implementation**

Multisim Getting Started Tutorial -> Multisim Introduction

Logic Gates in Multisim -> Testing out Logic Gates in Multisim

Simple Circuits in Multisim -> Circuits using Logic Gates in Multisim in 3 ways

Adder Circuits in Multisim -> Implementing Half, Full and N-bit Adders in Multisim

Multiplexer, Encoder and Decoder Circuits in Multisim -> Multisim Implementation Examples

Advanced Sequential Circuits in Multisim -> JK Flip Flop Implementation of a State Diagram

**VHDL**

VHDL Introduction -> What are HDL Languages, VHDL Theory

VHDL Basic Coding Structure -> Structure, Libraries, Assignment Statements and Processes

VHDL Basic Circuits -> Simple VHDL Coding using knowledge from the previous post

VHDL Modelsim Getting Started Tutorial -> Modelsim Tutorial

VHDL Behavioral, Dataflow and Structural Models -> Coding Models

VHDL Sequential Circuits -> Reminders, D-Flip-Flops, Registers and Counters

VHDL Testbench and Datatypes -> Testbench, Constants, Variables and Datatypes

VHDL Finite-State Machines -> FSM Coding

VHDL Coffee FSM Example -> Coffee FSM

Simple ALU Circuit Project in 3 parts...

VHDL Simple ALU Circuit(part 1) -> ALU Layout/Operations, Adder, Subber and Incrementation/Decrementation Components

VHDL Simple ALU Circuit(part 2) -> Multiplicator and Comparator Component

VHDL Simple ALU Circuit(part 3) -> Logical Operation (NOT, AND, OR, XOR), Structuring/Combining and Simulation/Testing

Simple FPGA Design using Quartus in VHDL -> Simple FPGA Design

# NETWORKING:

In this category are programming posts in C and Java (for now) that have to do with Inter-process or Inter-network communication. I use Linux for the C posts and get into everything you need to get started with Socket programming. In Java we simply get into how the Java Networking API works in some simple examples...

**C**

C Processes in Linux -> fork() mainly

C Threads in Linux -> pthreads library

C Process/Thread Synchronization in Linux -> Critical Section, Sync. Algorithms, Semaphores

C Inter-Process Communication in Linux -> Shared Memory, Pipes and Message Queues

C Signals and Signal Handling in Linux -> Signals, Signal Handling

C Classic Synchronization Problems in Linux -> Producer-Consumer, Readers-Writers, Dining Philosophers

C Sockets in Linux -> TCP and UDP Sockets, Libraries and Datatypes

C Server-Client Communication in Linux -> Server-Client Implementation/Communication

C Server-Client Kinds in Linux -> Kinds of Clients/Servers, Full-On Example

**Java**

Java Threads and Synchronization -> Java Threads, synchronized

Java Sockets and Server-Client Communication -> Sockets, server-client programm

I'm thinking of getting into more specific Theory stuff...

# MATHEMATICS:

This category is all about maths...I will get into all the basic and more advanced concepts of many different branches of math. We will also get into how we use it in computer science or information technology, and how useful mathematics actually are! I know that many of you hate and are scared of math, but I will try to make everything seem as simple as possible, so that you only get to know what you actually need. All these advanced mathematics will be needed when we get into Physics or even Game Design!

Let's split the posts based on the branch...

**Linear Algebra**

Linear Algebra Introduction -> Tables and Linear Systems

Linear Algebra Gauss Method -> Gauss Method

Linear Algebra Inverse Matrix and Determinants -> Gauss-Jordan for finding Inverse Matrix, Determinants

Linear Algebra Vector Spaces -> Vector Spaces

Linear Algebra Combinations and Independence -> Combinations and Independence

Linear Algebra System Examples -> Linear System Examples

Linear Algebra Functions -> Functions

Linear Algebra Function Matrix and Special Cases -> Function Matrix and Special Cases

Linear Algebra Eigenvalues and eigenvectors -> Eigenvalues, Eigenvectors

Linear Algebra Function Examples -> linear function examples

**Mathematical Analysis**

Mathematical Analysis Introduction (Functions) -> Functions, Operations, Basics

Mathematical Analysis Functions II -> Monotony, Extremum, Categories

Mathematical Analysis Limits and Continuity -> Limits, Continuity

Mathematical Analysis Continuity II -> more stuff about Continuity

Mathematical Analysis Limit Solving Examples (with roots) -> Limit examples with roots mainly

Mathematical Analysis Derivatives -> Derivatives, Rules, common functions

Mathematical Analysis Differentiation Theorems -> Fermat, Rolle, Mean value, L'Hospital, ...

Mathematical Analysis Indefinite and Riemann Integrals -> Indefinite-definite Integral Properties

Mathematical Analysis Integration by Substitution Technique -> Substitution Technique

Mathematical Analysis Integration by Parts Technique -> by Part Integration

Mathematical Analysis Integration Techniques for Rational Functions -> Rational function integration

Mathematical Analysis Integration Techniques for Trigonometric Functions -> Trigonometric function integration

Mathematical Analysis Integral Applications and Examples -> Area, Volume, Length of Curve

Mathematical Analysis Sequence Basics -> Sequence, bounding, monotony

Mathematical Analysis Subsequences and Convergence -> Subsequences and Convergence

Mathematical Analysis Special Sequences and Divergence -> Special Sequences and Divergence

Mathematical Analysis Series Basics -> Series basics

Mathematical Analysis Series Convergence Tests -> Series convergence

Mathematical Analysis Series Convergence Examples -> examples using the tests of the previous post

Mathematical Analysis Power Series -> Power Series generally

Mathematical Analysis Taylor and Maclaurin Series -> Taylor and Mclaurin Power Series

Mathematical Analysis Fourier Series -> Fourier series

Of course even more is yet to come in mathematics (even in mathematical analysis!) and you should also get ready for some Physics posts in the near future!!!

And this is actually it!

I hope that this post will help you search for specific content, topics and stuff on my blog, cause with so many different posts and such a complicated uploading order everything seems so messed up!

Bye!