The *5* 'as well as you can' CS assignments that I failed to submit, on my freshman semester
Tags: university, student, education, rant
Published: 2019-01-27 04:37:43

---
title: The *5* 'as well as you can' CS assignments that I failed to submit, on my freshman semester
published: true
description: I'm failing my freshman semester right now, for the second time (on another uni), and I'm depressed
tags: university, student, education, rant
---

_I'm failing my freshman semester right now, for the second time (on another uni), and I'm depressed_

> I hate when CS assignments have pretty-much-close-to-infinite amount of facultative features for the program/result to have, and doing any of them influences the fundamental design, but greatly increases time needed for it, in a way imprevisible for the students
> 
_-- me, on Twitter and Mastodon_

1. (DWIN4) _Generate a BMP file, of which the JPEG compression ratio will be the greatest._ I started researching JPEG algorithm and machine learning solutions to this, started trying to code something up, ... in Fortran _btw_.

2. (DWIN5) _Design a DTD schema for a made up data model for a store, which would have stuff like groceries, stationery, clothing and stuff on shelves and some fields for these products, and types of products_ I was late on submitting DWIN4(↑) and still trying, and also it was hard to make that stuff up.

3. (DWIN7) _Find the furthest legit route in the network you can._ A competition who can find the furthest was announced, as in case of the first one.

4. (DWIN8) Not exactly infinite, but the level of detail could be pushed far I think. _Host A was connected to local network. It's going to use DHCP config, then with the use of ARP learn the hw addr of host 192.168.0.5 and send to it seeral packets of data with TCP. Describe {exactly, in detail} [this is a translation] the packets the sending and receiving of which should be expected._

5. (SOP-MS) _Write a simple program — shell, in ANSI C. The program should take commands as input, and then execute operations according to them. The shell it supposed to:_
  * (1.0p) _print the prompt of `[{path}] $`_
  * (1.0p) _support `cd`, analogous to the one from bash_
  * (0.5p) _support `exit` command, ending the operation of the shell program_
  * (0.5p) _support `help` command, displaying info about the author and supported features_
  * (2.0p) _support two other, **arbitrarily selected** commands of a shell (it's about an own, simple implementation of two commands, for example `cp`, sources for which where not provided on the classes)_
  * (2.0p) _take commands referring by name to scripts and programs present in directories describes by the envirinmental variable `PATH` and allow for execution of these scripts with arguments (i.e. `fork`+`exec*`)_
  * (1.0p) _print error message, when correct command interpretation is impossible_
  * (2.0p) _having some so-called additional **frills** (depending on the level of complexity of the problem), for example displaying the login of a currently logged in user, color support, quoted arguments support, [reasonable] support of signals (for example, `Ctrl+Z`), command history support, syntax autocompletion, etc._ I started digging deep into `libedit`...

While I understand how these assignments are encouraging creativity and may really provide great learning experience, these are pretty much flawed, at least in cases like me. I really love these teachers, their attitude and everything, but it's just these assignments being like "there is no such thing as «done»". Obviously they were only a minor contribution to me failing this semester, but still... (*failing — I still might pass)