Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IZTECH Computer Engineering Coursework

Selected programming assignments completed during my Computer Engineering studies at İzmir Institute of Technology (IZTECH).

This repository serves as an archive of coursework from several undergraduate computer engineering courses and reflects my early programming experience across different languages, paradigms, and problem domains.

Overview

The repository contains assignments from the following courses:

Course Primary Language Main Areas
CENG 112 Java Object-oriented programming, data structures, file processing
CENG 113 Python Programming fundamentals, problem solving, control flow
CENG 211 Java Object-oriented design and application development
CENG 212 Scheme Functional programming and list processing
CENG 222 Python Probability, simulation, numerical experiments, data visualization

The assignments range from introductory programming exercises to larger object-oriented and functional programming tasks.


CENG 112 — Java Coursework

The CENG 112 assignments contain Java-based programming exercises involving class design, file processing, collections, and object-oriented concepts.

One of the assignments models a recycling system using classes representing different types of recyclable materials and recycling bins.

Example classes include:

Garbage
Bin
PlasticRecycleBin
GlassRecycleBin
PaperRecycleBin
MetalRecycleBin
OrganicRecycleBin
FabricRecycleBin
FileIO
GarbageRecyclingApp

These exercises provide experience with:

  • Java classes and objects
  • encapsulation
  • interfaces
  • inheritance
  • file input/output
  • collections and custom data structures
  • application-level problem modeling

Some assignments in this course were completed collaboratively.


CENG 113 — Python Coursework

The CENG 113 assignments focus on programming fundamentals and algorithmic problem solving using Python.

The exercises involve concepts such as:

  • conditional statements
  • loops
  • user input
  • string processing
  • arithmetic operations
  • validation
  • formatted console output
  • decomposition of problems into smaller steps

For example, one assignment dynamically creates text-based cards with configurable dimensions and correctly handles different relative sizes.

These assignments represent early experience with implementing algorithms directly from structured programming requirements.


CENG 211 — Object-Oriented Programming

The CENG 211 assignments focus more heavily on object-oriented software development using Java.

Projects in this directory apply object-oriented principles to larger problems and involve multiple interacting classes.

The coursework provides practice with concepts such as:

  • object-oriented analysis
  • class relationships
  • domain modeling
  • encapsulation
  • inheritance and polymorphism
  • Java collections
  • file-based data processing
  • separation of application responsibilities

Some of the CENG 211 work was completed collaboratively as part of group assignments.

A separate repository containing selected CENG 211 projects in a more focused format is also available in my GitHub profile.


CENG 212 — Functional Programming with Scheme

The CENG 212 assignments explore functional programming using Scheme.

The coursework represents structured datasets using lists and processes them through reusable procedures.

Example data structures include:

Items
Customers
Transactions
Categories
Locations

The assignments involve operations such as:

  • filtering list data
  • retrieving structured information
  • processing customer transactions
  • calculating aggregate values
  • querying data by category
  • querying data by customer properties
  • composing reusable procedures

The coursework provides practical experience with a programming paradigm that differs significantly from object-oriented and imperative programming.

Concepts Practiced

  • functional programming
  • list processing
  • recursion
  • higher-level procedures
  • immutable-style data manipulation
  • symbolic data
  • nested lists
  • procedural abstraction

CENG 222 — Probability & Computational Experiments

The CENG 222 assignments use Python to implement computational experiments involving probability and random variables.

The exercises use libraries such as:

NumPy
Matplotlib
Python random

Experiments include generating random variables, analyzing simulated distributions, and observing statistical properties over large numbers of trials.

Topics explored include:

  • random experiments
  • discrete random variables
  • continuous random variables
  • probability distributions
  • expected values
  • variance
  • simulation
  • inverse transform sampling
  • numerical experimentation
  • visualization of distributions

For example, simulations generate thousands of random observations and compare their empirical behavior through histograms, running averages, and variance calculations.

This coursework combines mathematical concepts with computational experimentation.


Languages

The repository contains coursework written primarily in:

Java

Used for object-oriented and application-oriented assignments.

Python

Used for introductory programming, problem solving, probability simulations, and numerical experiments.

Scheme

Used to explore functional programming and list-based data processing.


Repository Structure

iztech-computer-engineering-coursework/
│
├── CENG112/
│   ├── hw1/
│   ├── hw2/
│   ├── hw3/
│   └── hw4/
│
├── CENG113/
│   ├── hw1/
│   ├── hw2/
│   ├── hw3/
│   └── hw4/
│
├── CENG211/
│   ├── hw1/
│   ├── hw2/
│   └── hw3/
│
├── CENG212/
│   ├── hw1/
│   └── hw2/
│
├── CENG222/
│   ├── hw1/
│   └── hw2/
│
└── README.md

Skills Demonstrated

Across these assignments, the repository reflects experience with:

  • programming fundamentals
  • algorithmic problem solving
  • object-oriented programming
  • functional programming
  • data structures
  • file I/O
  • numerical computation
  • probability simulations
  • data visualization
  • domain modeling
  • structured software organization

The assignments also show progression from smaller introductory programming exercises toward larger programs involving multiple classes, data structures, and programming paradigms.


Academic Context

These assignments were completed during my undergraduate Computer Engineering studies at İzmir Institute of Technology.

The repository is maintained primarily as an academic archive and as a record of my programming progression throughout the curriculum.

It should therefore be viewed as coursework rather than production software.


Collaboration

Some assignments were completed collaboratively as required by the corresponding courses.

Collaborators are credited in the relevant course directories where applicable.

The repository intentionally preserves these acknowledgements to accurately represent the academic context of the work.


Author

Behice Kadıoğlu

Computer Engineering
İzmir Institute of Technology

GitHub: @behicekadioglu

About

Selected programming assignments completed during my Computer Engineering studies at IZTECH.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages