Skip to content

doemefu/uzh_info1

Repository files navigation

Informatics 1 - ACCESS Assignments

This repository contains all the ACCESS assignments for the Informatics 1 lecture at the University of Zurich (UZH). Each assignment is organized in its respective folder, with the folder name indicating the topic of the assignment.

Exam info

No git-coding no

Tasks

60 Points total

  • 3x kPrim: each 3 points --> Total 9
  • 7x programming: each from 6 to 11 points --> Total 51

Assignment Summaries

Overview by Tasks

  1. Assignment: Getting started
  2. Assignment: Function basics
  3. Assignment: Functions
  4. Assignment: Loops and more
  5. Assignment: Classes and more
  6. Assignment: Classes and inheritance
  7. Assignment: Special methods
  8. Assignment: Testing
  9. Assignment: Recursion
  10. Assignment: TBD
  11. Assignment: TBD

Assignment 1: Getting Started

  1. Hello-World
    Introduces Python programming by guiding you to write and execute your first "Hello, World!" program, showcasing basic syntax and output.

  2. Installing-Python
    Step-by-step guide for installing Python on various platforms, including configuring the environment and verifying installation success.

  3. Variable-Assignment
    Explains variable assignment, naming conventions, data types, and basic operations to manipulate variables in Python.

  4. Setup-IDE
    Guides the installation and configuration of an Integrated Development Environment (IDE) such as PyCharm or VS Code for efficient Python development.


Assignment 2: Function Basics

  1. Arithmetic Expression
    Teaches writing basic arithmetic functions to evaluate mathematical expressions with dynamic inputs.

  2. Greeting
    Guides the creation of a function to dynamically generate personalized greeting messages.

  3. Ice Cream Shop
    A practical exercise in building a function to simulate orders in an ice cream shop, showcasing parameter handling.

  4. Math Zoo
    Demonstrates how to create and combine mathematical operations using function calls.

  5. Set Operations
    Explains set theory concepts and operations like union, intersection, and difference through functions.

  6. Transform String
    Teaches building functions to manipulate and transform strings, including case conversion and replacements.


Assignment 3: Functions

  1. Bank Loan (Higher-Order Function)
    Develops a higher-order function to evaluate bank loan eligibility based on provided criteria, showcasing functional programming concepts.

  2. BMI Calculator
    Implements a function to calculate Body Mass Index (BMI) and provide health recommendations based on the result.

  3. List Comprehensions
    Teaches list comprehensions as a Pythonic way to create lists, with practical examples for data processing and filtering.

  4. ROT13
    Implements a function to encode and decode strings using the ROT13 cipher, exploring string manipulation techniques.

  5. Tax Calculator
    Creates a function to calculate income tax based on progressive tax brackets, demonstrating conditional logic and arithmetic operations.

  6. Warehouse Stock
    Develops a function to manage stock in a warehouse, including adding, removing, and querying items dynamically.


Assignment 4: Loops and More

  1. Data Compression
    Explores algorithms for compressing data using loops and conditional logic to reduce redundancy.

  2. Dictionary Comprehensions
    Demonstrates Pythonic ways to create dictionaries with loops and conditionals, providing concise and efficient methods.

  3. Hamming Distance
    Implements a function to calculate the Hamming distance between two strings, applying loops and conditionals for comparison.

  4. Invert Dictionary
    Develops a function to invert keys and values in a dictionary, showcasing iteration over dictionary items.

  5. IP Validation
    Teaches how to validate IP addresses by splitting strings and applying logical checks within loops.

  6. Is Prime
    Implements a function to check if a number is prime, using efficient looping mechanisms to reduce computational overhead.

  7. List Comprehensions
    Revisits list comprehensions to apply looping logic in a compact and efficient manner for data manipulation.


Assignment 5: Classes and More

  1. Custom Calendar
    Implements a class to create and manage custom calendar objects, providing methods for adding and retrieving events.

  2. Juliet's Number
    Develops a class to model a sequence or a mathematical concept, showcasing encapsulation and method functionality.

  3. Merge Lists
    Introduces a class to merge and manage multiple lists efficiently, using object-oriented techniques.

  4. Profanity Filter Class
    Implements a class to filter profanities from text using customizable word lists and string processing methods.

  5. Rotating Dominos
    Creates a class to simulate and manage a domino rotation system, demonstrating state management within objects.

  6. Sieve of Eratosthenes
    Builds a class to compute prime numbers using the Sieve of Eratosthenes algorithm, integrating object-oriented principles.


Assignment 6: Classes and Inheritance

  1. Bank Account
    Implements a class hierarchy to model different types of bank accounts, demonstrating inheritance and method overriding.

  2. Drawing Board
    Creates a base class for a drawing board and subclasses for specific shapes, showcasing polymorphism and subclass-specific behavior.

  3. Geometric Objects (Inheritance)
    Develops a hierarchy of geometric objects, like circles and rectangles, to demonstrate shared and unique attributes through inheritance.

  4. University Course Management
    Models a university course system with classes for courses, students, and professors, demonstrating complex inheritance structures and relationships.


Assignment 7: Special Methods

  1. Fridge
    Implements a class for a virtual fridge with support for adding, removing, and checking items using special methods.

  2. Movies Composition
    Develops a class to manage movie details, showcasing composition and integration of multiple objects.

  3. Matrix Abstraction
    Builds a matrix abstraction class with special methods for arithmetic operations and indexing.

  4. Reverse Indexing
    Introduces a class with customized indexing behavior, including reverse indexing using __getitem__.

  5. Publication Data Structure
    Creates a class to manage publication records, demonstrating usage of special methods for iteration and representation.


Assignment 8: Testing

  1. Blackbox Testing: Arrays Overlap
    Implements blackbox testing for a function that checks for overlapping elements between two arrays, focusing on input-output behavior.

  2. Blackbox Testing: Sort
    Tests the functionality of a sorting algorithm through blackbox testing, verifying correct order and edge cases.

  3. Regression Test: Median
    Conducts regression testing for a function calculating the median of a dataset, ensuring backward compatibility.

  4. Game Moves
    Develops tests for a game simulation, validating the accuracy and correctness of implemented moves and outcomes.


Assignment 9: Recursion

  1. Factorial
    Implements a recursive function to calculate the factorial of a given number, demonstrating base and recursive cases.

  2. Powerset
    Develops a recursive algorithm to generate all subsets of a given set, highlighting recursion in combinatorics.

  3. Flatten List
    Creates a function to recursively flatten nested lists into a single-level list, showcasing recursion with data structures.

  4. Palindrome
    Implements a recursive function to check whether a string is a palindrome, emphasizing character comparisons and string slicing.

  5. Towers of Hanoi
    Simulates the Towers of Hanoi problem using recursion, including disk moves and tracking state transitions.

  6. Knapsack Problem
    Develops a recursive solution to the 0/1 knapsack problem, demonstrating optimization with recursion and decision-making.


Assignment 10: TBD


Assignment 11: TBD


Releases

No releases published

Packages

No packages published