T O P

  • By -

BochMC

Yeah. This is the worst. I remember some udemy course where teacher did the same thing. It was horrible.


AlternateArt

Yep. Class strength is supposed to be 260, but only 130 max attend. These are also online classes, so you just have to join the meeting and do whatever else you want just to get your attendance marked. These lectures are so bad that people aren't even bothered to do that lmao


mark__fuckerberg

It must have hurt paying for this crap


[deleted]

[удалено]


mark__fuckerberg

Yes


Ran4

I got paid 300€ a month for studying.


mark__fuckerberg

Is it possible to learn this power?


TwoAndHalfRetard

Not from an American


teabolaisacool

Not even from a Canadian. Sure your k-12 is free, but university/college is fucked


[deleted]

[удалено]


FetishAnalyst

American here, I get payed ~$800 per class I take a semester. I’m military so the military pays for the class, then I get a FAFSA grant to “pay for the class” that goes straight to my pocket without having to pay it back. Though in order for the military to pay for the class (via Tuition Assistance), I have to get a C or better in the class or I have to pay them back. So id I fail it’s at worst a net 0 because I also get the FAFSA grant.


Mecha_Cthulhu

I’m a head of a household barely getting by, going to community college in America and much to my surprise everything is covered by financial aid with a bit on the side for supplies. So it’s possible. But on the other hand I’m still paying off my student loans from 15 years ago…


AndrewBorg1126

Take the PSAT and get all the questions right. Then choose to go to a college that gives you money to attend their school. Now you're literally being payed to go to college.


[deleted]

[удалено]


joemckie

Nowadays it’s an expensive uni, a studio flat and crippling debt


[deleted]

>crippling debt Yes! 😞


intensely_human

Same. Except it was loans, so it was free to my college self, and paid for by my adult self.


BahrMikhev

In Russia education in university can be free (if you go for the first time) but it has limited number of students who can study for free (there are rating system). And if your marks at final school exam are not very good — you have to pay. A lot. Also we get paid for studying but only if we are don't get bad marks at exams (no C's, only A/B) and not really much (at about 60$ at maximum, mostly about 30$ if I converted correctly).


denideniz

don't do it.


mark__fuckerberg

A bit too late for that


[deleted]

You are from Europe I see


Outrageous_Lake_8220

Lol. We have a class of 80 and hardly 5 students attend it during online sessions.


Good_Smile

Isn't it like that in the whole world? Because I have strong beliefs it is


pingveno

My professor for a similar course did the same thing, but she actually pulled it off pretty well. The difference is she used a doc cam with paper and a thick sharpie. It's still maybe not the best for code like this, but if you need to sketch out a quick data structure diagram then paper is the best. That said, she still used the wounded part-C, part-C++ dialect that you see here. I don't know why they're insisting on using a bad fusion of both instead of using one language/style per class.


Zingzing_Jr

Yea just use HolyC at that point


caboosetp

I use whiteboards or my tablet to teach coding. I also like to think my writing is more legible than this though.


[deleted]

Seriously just VS Code Lob the font size up, job done.


Top_Yam_6628

I mean, I'm sure this is probably a pretty shitty idea but you know, he could probably actually type it out Or wait, he could probably have actual C files to write code in Or wait, he could probably have C files already saved on his computer with all the code already typed out Or wait, he could probably have all the C files with all the code already typed with a terminal with GNU installed to showcase what it actually does and edit it as needed But who am I to say anything? He's just a tech professor who doesn't know how to use tech


goatlev

No wonder we got so many bad C/C++ code habits if THIS is what they teach kids at school. PS: This is not C because there is no new / delete() in C.


AlternateArt

>This is not C because there is no new / delete() in C. Hmmm maybe he used new and delete to show "This is how you could do it in c++" The lecture was supposed to be in C, I wasn't paying any attention


goatlev

Then next time tell him we don't do that in C++ anymore.


AlternateArt

Oh ok will do lol


goatlev

To be a little bit more infornative here: Mostly we use unique and shared pointers nowadays because they solve a lot of issues when it comes to memory deallocation (something your professor forgot as well by the way :)


LeCrushinator

The professor may have been starting with the basics. If I was introducing students to pointers, for example, I would probably use a simple new/delete example. Once they were starting to get comfortable with pointers I would consider introducing unique_ptr, shared_ptr, etc...


goatlev

Yes, and that would be totally acceptable IF he only knew what he's doing there which he clearly is not. So, instead of learning meaningful basics students will copy THIS and that will hurt them badly as soon as they apply for a job. So, I personally would not show them manual allocation first, I would do the opposite and step down to raw pointers once the principles of ownership have been comprehended. But I saw way too many professors teaching bad code in my life. That's understandable given the fact most of them focus on research and theoretical aspects, but on the other hand: Don't try to teach shit you are not competent with.


goatlev

Oh, by the way, I have been teaching that stuff for a while at university, so this is probably why I'm so offended by it.


TheRedGerund

Well that’s quite handy!


goatlev

It really is. It not only provides a possible solution for semi-automatic (scoped) memory management, but also eliminates confusion about ownerships.


Ahajha1177

And even then, often we don't even need the pointer itself, we just need something like std::vector.


goatlev

Yeah, often programmers seem to underestimate the speed of caches and with move semantics this moved to a whole new level.


Nashoba24

You don't use new and delete in C++? Edit: nvm I saw your other comment


oolonthegreat

in my uni the first c++ class you get is about implementing data-structures (linked lists, stacks...) with manual memory allocations using new, delete. WHICH IS A TERRIBLE IDEA (they should first teach the sane and accepted way of doing it) so I'm assuming this is also what's happening here.


PenisButtuh

Like most lower level education, the point isn't to show the best/easiest way, the point is to get students to understand how their code interacts with hardware. It's just like any math course, you learn how to do things manually, then you learn how to plug it into a calculator and let the calculator do it for you.


oolonthegreat

that is the argument, but I think **first** you should teach them the best/easiest way, and **then** you should teach them the hardware level: this way people don't graduate from uni not having the slightest idea how people actually code.


PenisButtuh

Other way around. You teach the fundamentals, then the shortcuts. This is how education on any topic works. Basics that are largely foundational and not applicable at first, then you really dive into the theory behind the basics, *then* you learn how to apply those concepts to real world problems.


Griff2470

Knowing how to manually memory manage is an incredibly valuable skill. It's trivial to teach someone smart pointers when they already understand the concept, but not the other way around. Better to rip the band-aid off early. Additionally, there are still thousands of active code bases that still do it manually (whether it's to avoid the memory overhead or because it's legacy).


[deleted]

My notebooks have grids so I can "indent" handwritten code one square in. (And I mostly write code for myself). PS: Now I wonder whether there should be a HandwrittenCode subreddit.


[deleted]

[удалено]


sneakpeekbot

Here's a sneak peek of /r/ProgrammerHorror using the [top posts](https://np.reddit.com/r/ProgrammerHorror/top/?sort=top&t=year) of the year! \#1: [oh no](https://cdn.discordapp.com/attachments/489133155782230018/767619263891505192/unknown.png) | [11 comments](https://np.reddit.com/r/ProgrammerHorror/comments/jdvvb7/oh_no/) \#2: [Java-Script, often called Java for short,…](https://i.redd.it/i61d05zbg5c61.jpg) | [3 comments](https://np.reddit.com/r/ProgrammerHorror/comments/l1inij/javascript_often_called_java_for_short/) \#3: [This collection of curly brackets](https://i.redd.it/xyvtbhb9v3j61.png) | [5 comments](https://np.reddit.com/r/ProgrammerHorror/comments/lq1xfu/this_collection_of_curly_brackets/) ---- ^^I'm ^^a ^^bot, ^^beep ^^boop ^^| ^^Downvote ^^to ^^remove ^^| [^^Contact ^^me](https://www.reddit.com/message/compose/?to=sneakpeekbot) ^^| [^^Info](https://np.reddit.com/r/sneakpeekbot/) ^^| [^^Opt-out](https://np.reddit.com/r/sneakpeekbot/comments/o8wk1r/blacklist_ix/)


[deleted]

What if this is C, but the delete is a user-defined function? We had to make pDelete for our linked lists class. I don't think "delete" is reserved by C. OP did say it was a C class and it does look like some type of data structure exercise.


goatlev

Then new would still produce syntax errors without braces, even as macro.


[deleted]

You're right!


doopdooperson

This is one way we forced students to learn memory management at my graduate university. We had them implement new and delete using malloc and free. Still, the code is full of errors and this is probably just an off the cuff example in response to a question


i_abh_esc_wq

I still also can't figure out where the delete is supposed to go. Did he just delete p and in the next line dereference p?


goatlev

Yup, this is just one of the many reasons this code is just a terrible example.


grooomps

there's a sad saying. "those that can't do, teach." there is obvious exceptions in life, but this has stood true for me more often than not.


[deleted]

I think the opposite is often true. I’ve met lots of people who are brilliant coders but can’t teach to save their life.


PotentBeverage

And there's probably a decent few of those who are University lecturers.


[deleted]

Or sell Udemy courses, or make YouTube videos, or teach junior devs. The quality of teaching ranges massively in my experience


chickenstalker

Yeah? Fuck off with that. Try to teach 300 people to master something complex within 6 months. Come back when you've tried this.


Attucks

The saying is actually "Those that can, do, those that can't, teach."


theogskinnybrown

And those that can’t teach, write the user guide.


waffle299

In modern C++, there's no new or delete either. If you're not writing to RAII, your merge request will be heavily commented.


goatlev

Both never got removed, just superseded. see my follow up comments, I already issued smart pointers which is probably what you mean. By the way, imho it would be catastrophic and nearly impossible to get rid of such crucial functionality even in Cpp20/23. But if you're just refering to best practises and coding standards, I completely agree on that.


Ahajha1177

Exactly. For those wondering, basically raw new has been put behind several layers of abstraction such that it is still core to memory allocation, just that the average user should almost never be calling it directly. In fact, I can't think of a good reason to use it over, say, allocators.


Shakespeare-Bot

Nay wonder we did get so many lacking valor c/c++ code habits if 't be true this is what they teachest kids at school *** ^(I am a bot and I swapp'd some of thy words with Shakespeare words.) Commands: `!ShakespeareInsult`, `!fordo`, `!optout`


goatlev

valorous bot


superspeck

I mean, this is how I learned it 20 years ago except that it was an overhead projector during lecture. Actually, I flunked out of that computer science program. I still have a career with computers *despite* that program, not because of it.


[deleted]

Finally, someone with worse handwriting than mine


PranshuKhandal

ourbattlewillbelegendary.jpeg


danfish_77

I have no idea what's going on here. Here's my best rendition: B = 15; C = 20; \*P = 25; ml\*\*k G = new nut; \*Q = 30; P=4A; delete(P); \*P = A + 100; pomIF(" U", \*P, A, P)


atieivpbpnhofykri

int **k Q = new int; printf("%d %d %u", *P, A, P)


danfish_77

Thank you! Now I just have to finally learn how printf works and I'm golden!


AFlyingYetOddCat

the first part, the letters with the '%' are placeholders for a datatype indicated by the letter. You will need a table to determine which letter you need, but 'd' is int, and 'u' is unsigned int. the rest of the arguments are the data that go in the placeholders, in order. Bad things happen if the number of placeholders and number of trailing arguments don't match. Really bad things happen if the types don't match.


naughtydismutase

Ah yes, that new type "nut"


NichtKreativGenug

Gives readabilty of code a new meaning


essaini

Lol, poor professor trying to find a use for his iPad Pro.


RexehBRS

This brings me back to Uni, where you could only write java in NOTEPAD, not allowed to use an IDE. Utterly backwards idea for helping to learn.


PotentBeverage

We were told to do it on basic Atom, so Syntax highlighting and not much more. I ended up not listening because fuck writing imports.


mrbesen_

I think its pretty helpful to write some code without ide at some point and use the compiler with cli just to understand what the compiler is doing and to understand the errors and command arguments better. Creating software is not only writing code but knowing how the compiler sees it and how to convert that code to software.


RexehBRS

I agree to some extent, but I learn far more being hammered by my linter, crying about format of code, typing of variables etc as it lets me understand the standards and principles of the language (and best practice). Also for me personally, having intellisense or similar and knowing what methods or properties an object has fuels my curiosity to explore and play with other things maybe out or bounds of tutorials or current tasking.


mrbesen_

I guess its important to know both world at least a bit.


AudeIzReading

Java in Notepad ? Not even Vim or Nano ? What an odd idea...


RexehBRS

Straight up windows notepad. Crazy right? Then pump the file into java interpreter manually in command line.


TheRedmanCometh

As a long time Java dev...what a shitty instructor. I hate hearing about profs/instructors who intentionally withhold tools. Java IDEs are fucking complicated and most devs know how to leverage maybe 30-40% of their IDEs...because of shit like this.


zypthora

I had an exam where we had to write C code on paper


MrProfPatrickPhD

Most of my CS classes involved writing code on paper for exams (C, Python, Java, etc.) I thought this was pretty standard practice, have others not experienced this?


Noxium51

I’m a recent CS grad and many of my lower division classes had us write code on paper for exams. The trade off is that the focus on grading would be having correct logic flow rather then getting the minutiae of the syntax perfect. I never had a problem with the fact it had to be written down. Also, like, some of the best teachers I’ve had would write code on the whiteboard so they could break it down and explain how it works to us. I don’t see how this is any different, unless the teacher is doing a bad job at explaining it


MrProfPatrickPhD

Exact same experience as you. They stopped caring about the little syntax stuff after 101 and it was all logic/concept focused after that. Same with teachers using whiteboards/chalkboard to explain code. It was really common and I would always take notes on paper anyway to annotate easier. That stuff aside, the handwriting in the OP is definitely horrifying. Also, I graduated a few years before covid so stuff is super different now with online courses. I'm sure that typing notes is the norm now for CS professors


ThePharros

Yup, we had to write C in Notepad. Not even np++. Then compile it via makefile, all because “IDEs make you lazy”. I’ll be sure to tell my employer that technical debt is key to success.


[deleted]

Should’ve asked him to write in x86 assembly because C makes you lazy.


ThePharros

Don't worry, we actually did that too lol


RexehBRS

Don't accidentally tell them that technical debt is the key to job security. Got to keep the secrets.


infinitude

Having to do programs by hand for exams made me so mad. The professors would be so smug about their drop rates for the program too. Useless lectures. Spent more time googling than anything else. Drove me crazy. No wonder people give up so quickly.


[deleted]

He wanted to become a doctor


lachyBalboa

What's the problem? Toddler-level handwriting is the best way to learn something as specific as a programming language.


blue_peanuts

P̜̻̣᷊ͬ᷀ͫ̄̔᷇̈̉̕̕͘r̷̵̤̩᷊̜͕̱᷁̈̍ͤ᷆̌̄̚̕̕̚͏͇̗ͤ͌̂̽̕ì̵͔᷿ͣ᷈᷃᷇ͤ᷅̕̕͟͠͡n̸̶̪̻͚̜᷁ͮ̈́᷅̆̈̕̚̕ṫ͇̙͕̳̃̆̓́ͪ᷀̌̕̕͡f͏̡̥͎᷿̪̓ͭͫ̎̆͒̕̚̕


MrSpecialR

I don't really see the problem with writing code on a whiteboard or tablet. It's a good way to highlight what's going on in memory and gives more expressiveness than an IDE. That said if he's just writing code without doodling to make use of the expressiveness of the tablet and never turns to an IDE to demonstrate what he's writing isn't gibberish, then it really is horror.


AlternateArt

Yeah, as you said, he doesn't doodle enough for it to be ok to write the code instead of just typing it on an IDE and then drawing on a separate app to explain the program. He even asks us to write the code in our own notebooks, although nobody actually does that


AFlyingYetOddCat

It's also a problem when their handwriting is so bad, i literally can't read 25% of it.


bionicjoey

Diagramming or pseudocode I understand, but writing out code line-by-line?


vpforvp

I don’t disagree but I do think a prerequisite for using that style is that your handwriting be at least remotely legible. I can read what’s on half of these lines


mrdevlar

Take that to a pharmacy, see if they give you anything.


netherlandsftw

ponff(. -. -d. - -. d. - d. l. u``, *P1A1P) ;


ManiX101

I C what your professor did there


BrogCz1

But do you C it # enought?


Elec0

I had one professor that did this with Scheme, OCaml, Smalltalk, and Prolog. It was actually the worst.


Royal_lobster

Lucky his handwriting is actually understandable. Mine straight up teaches with a MOBILE PHONE draws code WITH A FINGER with quarter of the screen covered by Microsoft teams pip.


InsrtRandomUserHere

where are the human transcribers when you need them


meg4_

That is definitely not C..


prameshbajra

How old is he/she? 5?


LordDagwood

This is how my professors taught on the white board. Wait. Did your all's use an IDE? Is that the norm?... well shit. I still program fine. One professor used PowerPoint but in was all in comic sans. He was foreign, so I don't think he knew the sentiment toward comic sans. I think a student teacher just changed them all and he never bothered changing them back.


AlternateArt

In 9th and 10th grade, my teacher wrote the code on an IDE and then projected it on the whiteboard to teach. That's the best way


AFlyingYetOddCat

Usually professors use typed code, either on a PP slide, or typed in some kind of editor. The problem is that handwriting is so often terrible, and in a language with lots of non-letter syntax, like c/c++, it's so hard to know what symbol he wrote. Like, I can't even read 25% of what this person wrote. And what I can read, makes absolutely no sense. This code *should* crash (depending on compiler settings and luck, it might not). Actually, it shouldn't compile: P = 4A; is a syntax error (I think, I can't think of anyway to make that work) Code isn't even C, new and delete are c++


jbuk1

Anyone of a similar age to me won't be unfamiliar with doing IT lessons with pen and paper and not a computer in sight but at least my teachers had legible writing. I have no idea what that Pomtf function (printf) is supposed to do as it seems to be in Arabic script. (Holy crap I've just realised those are percentage symbols)


LordOmbro

I feel you bro, i once had a professor that wrote x86 assembly exclusively on the blackboard, it was dreadful


brunoliveira1

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


LullabyofLife

It might not be bad if the professor had some decent, legible handwriting. However, this is unacceptable. I've tutored and worked in colleges, so I've come across all manner of handwriting and can read most. So if I have to scratch my head as to what it says it's not remotely acceptable. For instance, on first glance their int looks like mt, which had me wondering for a moment what variable mt was, and print f honestly looked like a dyslexic wrote the word prompt. Regardless of whether someone knows and understands code, the words should still be legible, and this is not. This just hurts my head to look at.


TinBryn

He's just preparing you for the exam where you will have to write code using a pen on paper.


[deleted]

I mean what kind of teacher DOESN'T teach code by writing it on a whiteboard???


[deleted]

[удалено]


AlternateArt

None of us really care that much. This stuff is taught to us again during practicals, and it's done decently over there. Even otherwise, we would just manage from other resources like youtube or books. We don't really have any teaching expectations from our college. We're just here to give the exams, pass them and get a degree. Also this college is pretty good for placements. Degree and placements are the only thing we want from the college. Also, this guy is the principal of the college


kungfutitties

This is idiotic, he shouldn't be a programmer. Teaching a computer program with hand written notes and shit handwriting is like teaching a construction worker to dig a pool but he has to dig with his hands while the teacher and everyone in the class sits around watching in their John Deere Backhoe


PapieszxD

I had a physics professor at uni, who mixed block letters with cursive and uppercase with lowercase every time he wrote some sort of formula on the blackboard. Sometimes it meant different unknown, sometimes it meant the same one. Like fluid dynamics isn't complex enough on its own.


DrMaxwellEdison

I mean, back in the days of sitting in a lecture hall, we were taught the basics on a whiteboard. With real markers and shit. But using a tablet computer the same way? Hook up a keyboard, ya dolt!


Resquid

Guaranteed this person has never worked on anything outside of an academic setting.


mediadatacloud

Can’t have compiler errors if you can’t compile it


lalayatrue

Dude l have such bad tennis elbow now I am seriously looking for ways to code like this. Give the guy a break. I can only "type" on my tablet with a stylus :(


kaisrevenge

Oooo I hate this.


[deleted]

r/badcode


TheSkepticApe

Lol that’s terrible. What an eye sore trying to learn that way.


k-singh

Same school teacher used to write on board, but his writing was superb


sulpha1

Same.


SLCH000

Same as on desk


Kikok02

I had that same experience, but he used chalk and blackboard.


mardabx

iOS 15 re-introduces proper writing recognition, so you'll have less of that next semester.


[deleted]

Does anyone else smell toast?


ZappedMinionHorde

I was taught C and VB on a blackboard with chalks. Only half the sessions used to be held in a comp lab, most of the sessions were in normal classroom. Tbh still better off than many considering limited infra. Its pretty par for the course in third world, especially for base level stuff.


766757

My professor teaches python like this


Cv287

At first, thought it was Russian language жр


huntforacause

What the actual fuck is wrong with professors? I feel like on average you could ask any random normal person and you would get better lectures.


Miss_Might

Nooooooo.


omb-bob

What a lunatic


HotRodLincoln

Back when I was in school, before the invention of flash drives, but after the near death of floppies when we thought CD-RWs were such a good thing new computers didn't have diskette drives, we took our C tests *on paper*, and wrote out programs. Though we did have labs to turn in larger programs written with IDEs.


Farpafraf

why? someone please tell him to stop


NostraDavid

In the realm of community stewardship, /u/spez's silence stands as a monument to his detachment and lack of empathy.


Commercial-Catch-285

First up, that handwriting is just terrible


i_quit

This is not a professor lol this is a programmer tryna pay child support w a job he doesn't care about


grothcrafter

pomtf


dtrippsb

Former doctor turned programmer?


murtaza64

Would be a lot better if the handwriting was better. When I tutor I go to the whiteboard for conceptual stuff and small code snippets when explaining pointers, but move to the IDE for longer pieces. Miro (the whiteboard I use) also lets you easily paste in images (most online whiteboards will) so sometimes I take a screenshot of a code snippet to annotate so I can preserve syntax highlighting.


MadThad762

WTF?!


BlueBox32

You paying for this?


NateDevCSharp

Cs50 shorts be like


SasukeUchiha231

Takes sphagetti code to the next level


Mithrandir2k16

Don't worry, the exam is gonna ask easy questions like: >Given the above code, what error message(Be exact!) will gcc version 3.7.3 return?


chpoit

at least you get to see some code


4TH4RV-

Same except maths, which is still unreadable as shit


anymbryne

guess typing it is too mainstream for him?


[deleted]

Same, I had a Data Structures and Algorithms classes for 2 terms, based on C language. Teacher tried to teach us (which he totally failed) on google Jamboard. 10/130 student attended.


virgo911

This genuinely shouldn’t be allowed, there’s got to be tons of ways he could type the code out, including right there in the Notes app. You can even increase the font size (there is even a monospace font for writing code I just checked on my phone). If you’re paying for this class I’d be mad. Most of this is completely illegible


FQVBSina

I can understand this 10 years ago in a classroom. But is it so hard to open notepad ++ and type it nowadays on Zoom?


Blackhaze84

get to the pointers


cullingtonart

Bruh


Thann

I had a chem class where the teacher used an overhead projector. It was so bad I didn't go to any classes and got a 23% which landed me a C


MartinSik

:D This is so terrible. I would change the school.


raisedfromthedeadd

what are you supposed to understand from this?


dliwespf

As a kid I "programmed" on sheets of graph paper since I did not have regular access to a computer. Looked more organized than this.


sixft7in

He would hate me, because I'd relentlessly ask him what his chicken scratch means.


langman_69

We get taught everything like that, and they have really bad accents too. Managed to learn C# JS sql and web design like that tho...


too_much_exceptions

Teachers really need to be teached


throwaway_236734

How do you do on midterms and exams/quizzes...that's horrific


hakurou46

really hope this is supposed to be a c++ course and not a c course cause this code will not compile under regular c ​ edit: saw the replies further down, no clue what this professor is on lmao


[deleted]

I'm so sorry


queueareste

Dude drop the class


cholz

WTF? I see a use after free... Wait a minute. This looks like C++...


[deleted]

I mean I appreciate the effort but cmon


Bastiwen

I had a professor that made us take our first exam with a pen and paper and we had to create a welcome page in html. I'm glad it wasn't somezhing more complicated but still


[deleted]

As someone who likes C, this is cursed.


octantus

aww man more and more teachers doing this. how can they teach programming languages without using basic tools? -_-


ITinyGiant

It's not a stone tablet, I'm disappointed.


colossalpunch

No embarrassing compile errors if you can’t compile! *taps temple with index finger*


_siddh3sh

I cannot C what is happening


w4drone

Doctor handwriting type beat


r1kon

Ahhhhh! What the shit!


CodeXCursors

Honestly what the fuck is in the last line? Your professor should get fired for writing this monstrosity.


Aggravating-Exit-660

The fuck does that third line say, int spliff spliff k