My first college programming class

story time!
> enter classroom
> ~10 rows of old monitors, keyboards, and mice
> each monitor has a sticker that says "terminal"
> the lecturer says that the terminals share parts of their operating systems with a server at the front of the classroom
> the server's display is being projected and it's running ubuntu with unity
> "please press the button underneath the bottom bezel of the monitor to turn on the terminal", says the lecturer, "and you'll see a bunch of letters which mean that the terminal is turning on"
> upon pressing the power button, the post screen showed up and said that the bios is out of year "1999-2000"
> then followed the init system and the xubuntu bootup animation
> lecturer says that this operating system is just like windows, only not
> he continues to baby us around the gui with lines such as "press the little mouse icon in the top left corner of the display", and "place your mouse over the "system" tab and click "terminal""
> i've noticed the lecturer has an unhealthy habit of clearing the terminal screen, i don't know why but every command he types is followed by "clear"
> he spoonfeeds us toward the geany icon then shows a hello world program on the projector
> "please type what's being projected"
> "press this icon", and "press this icon"
> "you have now written your first c program"
> "open the terminal. this time, you can click the terminal icon located on the bottom tray of your display"
> "try running your program by typing the name of your program"
> "you can't because you need to add "./" before the name of your program"
> "you may exit the classroom"
he never explained what the hell we wrote in geany or why we need to add "./" or what geany is
i'm worried, Sup Forums

Get out while you can

I took a Business IT elective years ago which was nothing but Ubuntu 101. Our first assessment was installing VLC on the Ubuntu Store and knowing some inbuilt shitware by name. Piping ls -a to a text file was also an assessment. The hardest thing in the entire course was setting up Apache which I believe was preinstalled.

you sound like a massive faggot to be quite frank

every first lesson is like this. Underestimating the lecturer gives you a sloppy attitude which will lead to difficulties later on in the course. He has to assume everyone in the class has no experience with linux or programming, or he would be a retard. If the whole course is like that and you are enrolled in a cs degree then you got a point, but I doubt it. Ask him more in depth question during breaks or before/after the lecture, so you will figure out if he's incompetent or not. You are there to learn, not to judge and point out.

>why we need to add "./"
When you just type in the name of your program, bash (the thing responsible for executing the commands you type into the terminal) looks for it in places like /bin, /usr/bin, but not in the current directory, so you have to specify that you want to execute the file located in the current directory (denoted by a dot). It's like typing in the full path of your executable, e.g. /home/user/mypgrogram
>what geany is
It's a text editor for editing plain text files. You write your C programs in plain text, and the compiler makes an executable out of them that contain instructions the processor understands.

I'm in EE and that makes sense.

Thanks senpai, but I already knew that.

>whole class connected to one server
>he didn't write a fork bomb
you had one job OP

>what is resource allocation

I'm fucking triggered how retarded you are, I'm genuinely upset.

What's wrong with older computers? Whats wrong with xubuntu? How does hardware from "1999-2000" prevent you from doing a basic programming intro course? The fuck does your post even mean you drooling fucking retard?

he probably wanted to make sure everyone typed out the code and it compiled correctly first and foremost. He will most likely be explaining what it does in the coming classes line by line. For first timers, doing multiple things at once (explaining the code and having you write it) just overloads you.

please notice that i haven't criticized anything but the lecturer not explaining to students what they were doing

Maybe he expected you to already know what you're doing.
Anyway if you really think the class is to easy just leaf it.

>intro programming class
>in C
>nobody walks out of class with any concept of objects or functional programming

i don't get the "C is a good first language" meme
everything interesting about C will fly over all a new person's head

They weren't connected to one server you twat.

>learning OO in an intro course
R u srs? Figure out hello world and loops before you shoehorn in bloat.

This is why Python is unironically a good first language.

It's shit, but at least you can spend your time learning loops instead of OO or segfaults

>implying hello world, if/else, basic library tools, loops, arrays, linkedlists, and functions take more than a month to cover

Segfaults are important in a course detailing how computers and modern operating systems function, though

In 2003, my university taught into to IT in JSP on a shared server.

It was unconventional, but actually really clever:
>freshmen just save their .jsp files to their uni home dir
>no compiling and running, just load in their browser
>don't have to rely on an IDE
>don't have to walk them through installing the JDK (at a time when it didn't even put itself in PATH)
>don't have to teach them how to compile and run from command line
>don't have to care about classes or main methods, just a loop is fine
>assignments submissions are a simple URL
>TAs can run it via URL, no having to figure out how to compile and run a hundred shitty freshman projects
>no "it works on my machine" bullshit, everyone's on the same machine
>good on-ramp to Java

Obviously people accidentally wrote infinite loops all the time. The server had a cron job that restarted the container every 2 minutes. It worked really well in practice.

Actually, python is a shit first language. When you teach the first intro class in python or scheme or java, you end up with students who go into more advanced classes unable to learn memory management or assembly language. Concepts like pointers need to be taught into intro courses. If they aren't that's bad news for you later on.

Memory management and assembly language are not fundamental to computer science.

If you're a brainlet or pajeet looking to make web sites or mobile apps, then yes you don't need to learn about memory management or assembly.

What the fuck is that thing and why do people keep posting it