Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "group assignments"
Had devRant installed for a while now and finally have something worth sharing.
This happened in my last Python lab at uni:
Me: *Working away at this week's assignment*
Dude next to me: You know last week's assignment?
Dude: Did you test you solutions to the exercises?
Dude: Oh, I didn't. Do you think I'll lose marks?
I can only hope I'm not forced to work with this guy on group assignments...10
Wrote a slick scheduling and communication system allowing me to assign photography resources based on time and location.
I'll tell you a little secret ... I'm not actually a dev. I'm a photographer, pretending to be a dev.
Or ... perhaps it's the other way around? (I spend most of my time writing code these days, but only for me - I write the software I use to run my business).
I own a photography studio - we specialize in youth volleyball photography (mostly 12-18 year old girls with a bit of high school, college and semi-pro thrown in for good measure - it's a hugely popular sport) and travel all over the US (and sometimes Europe) photographing.
As a point of scale, this year we photographed a tournament in Denver that featured 100 volleyball courts (in one room!), playing at the same time.
I'm based in California and fly a crew of part-time staff around to these events, but my father and I drive our booth equipment wherever it needs to go. We usually setup a 30'x90' booth with local servers, download/processing/cashier computers and 45 laptops for viewing/ordering photographs. Not to mention 16' drape and banners, tons of samples, 55' TVs, etc. It's quite the production.
We photograph by paid signup only - when there are upwards of 800 teams/9,600 athletes per weekend playing, and you only have four trained photographers, you've got to manage your resources!
This of course means you have to have a system for taking sign those sign ups, assigning teams to photographers and doing so in the most efficient manner possible based on who is available when the team is playing. (You can waste an awful lot of time walking from one court to another in a large convention center - especially if you have to navigate through large crowds - not to mention exhausting yourself).
So this year I finally added a feature I've wanted for quite some time - an interactive court map. I can take an image of the court layout from the tournament and create an HTML version in our software. As I mouse over requests in one window, the corresponding court is highlighted on the map in another browser window. Each photographer has a color associated with them. When I assign requests to a photographer, the court is color coded with the color of the photographer. This allows me to group assignments to minimize photographer walk time and keep them in a specific area. It's also very easy to look at the map and see unassigned requests and look to see what photographer is nearby.
This year I also integrated with Twilio and setup a simple set of text shortcuts that photographers can use to let our booth staff know where they are, if they have memory cards that need picking up, if they need water/coffee/snack, etc. They can also move assignments on their schedule or send and SOS for help if it looks like they aren't going to be able to photograph a team.
Kind of a CLI via the phone. :)
The additions have turned out to be really useful and has made scheduling and managing the photographers much easier that it was in the past.18
Let the student use their own laptops. Even buy them one instead of having computers on site that no one uses for coding but only for some multiple choice tests and to browse Facebook.
Teach them 10 finger typing. (Don't be too strict and allow for personal preferences.)
Teach them text navigation and editing shortcuts. They should be able to scroll per page, jump to the beginning or end of the line or jump word by word. (I am not talking vi bindings or emacs magic.) And no, key repeat is an antifeature.
Teach them VCS before their first group assignment. Let's be honest, VCS means git nowadays. Yet teach them git != GitHub.
Teach git through the command line. They are allowed to use a gui once they aren't afraid to resolve a merge conflict or to rebase their feature branch against master. Just committing and pushing is not enough.
Teach them test-driven development ASAP. You can even give them assignments with a codebase of failing tests and their job is to make them pass in the beginning. Later require them to write tests themselves.
Don't teach the language, teach concepts. (No, if else and for loops aren't concepts you god-damn amateur! That's just syntax!)
When teaching object oriented programming, I'd smack you if do inane examples with vehicles, cars, bikes and a Mercedes Benz. Or animal, cat and dog for that matter. (I came from a self-taught imperative background. Those examples obfuscate more than they help.) Also, inheritance is overrated in oop teachings.
Functional programming concepts should be taught earlier as its concepts of avoiding side effects and pure functions can benefit even oop code bases. (Also great way to introduce testing, as pure functions take certain inputs and produce one output.)
Focus on one language in the beginning, it need not be Java, but don't confuse students with Java, Python and Ruby in their first year. (Bonus point if the language supports both oop and functional programming.)
Use industry standards. Notepad, atom and eclipse might be open source and free; yet JetBrains community editions still best them.
For grades, don't your dare demand for them to write code on paper. (Pseudocode is fine.)
Don't let your students play compiler in their heads. It's not their job to know exactly what exception will be thrown by your contrived example. That's the compilers job to complain about. Rather teach them how to find solutions to these errors.
Teach them advanced google searches.
Teach them how to write a issue for a library on GitHub and similar sites.
Teach them how to ask a good stackoverflow question :>6
We have a group slack chat for my class which was intended to be a space for asking questions about assignments and getting help from your peers. Instead it has become a dick measuring contest in there where guys who know very little can act all high and mighty about their (plain wrong, in some instances) facts they're distributing without care. It pisses me off so much seeing how toxic it has become in there. It's the same 5 guys using it to bully each other and God forbid anyone else asks a question, they'll be mocked for not being confident handing in a solution they aren't sure is right. Why can't people treat each other with respect? We're in school to LEARN. Not impress other students with how much (read: little) we know. GJ, guys. You created a smaller version of stack overflow.4
Still at uni, last semester of junior year. Required to take Intro Python II course, which is still language basics + intro to OOP and a thing called "graphing". Been coding in Python for 5 years, hold job at uni coding Python, can't skip. It's whatever. My friends and I coordinated our schedules to take it together because they aren't coders and wouldn't have passed Intro Python I class without me.
Instructor is foreign, thick accent, English is a bit broken, only second semester here. It's ok. I know the instructor who helped design the class and she's good. We'll work through the speech. As long he can teach kinda decent and we have good assignments, we'll be good. I'm staying positive.
We were wrong.
Not only can he barely teach, he can't explain anything. He only knows one way to explain something and it's barely correct. Everyone is lost on day 1. The first two lectures were reviewing the 15 weeks of material from Intro I that we just finished literally a month ago. Doesn't actually finish the review by end of second class.
He gives us PowerPoints! Except he's modified them. Syllabus says that ppts are "not enough to study with. You must take notes in class and be here for every class or you will fail." Ohhhh... kaay. I understand note taking and the importance of class attendance, but setting it up to make students fail if they don't learn like you teach? *raises eye brow*
He opens PyCharm on the projector! He says "these are the notes you take. Once I type and run, I delete and not put back. If you don't have, oh well." He runs as much code as possible in the interactive prompt, once. His explanations are poor and don't make sense. We can't understand much of what he's saying because the accent and broken words is making it so much worse.
He pulls up the ppts on the projector! His copies have more slides, aka, the very thing we as a student would like to have to, you know, study well! But he goes through them quickly so ahaha so long note taking. Don't you dare have your phone out! He'll call you out if you try to take a pic of the screen. He'll walk back to your seat, stand over you in an intimidating manner, and stay there until you delete it.
Did I mention the class atmosphere? Silence. Suppressing. Almost suffocating. He's in control. He's demanding, snappy, short, rude. "OK, what about [this thing]? I give you five minutes then I call name." (Literally a minute and a half later. We timed it). "[Name]. Do you know why [thing]? Why not. I explain it. You should know." Don't dare ask for an re-explanation. Even if you're polite and genuinely confused. He'll be even more short with you. He'll be visibly annoyed. You should have already understood it. "Check your notes!"
As for assignments, he took the assignments the other (good!) instructor made and was modifying them to the point of literal technical impossibility when read literally. I had to come up with some creative solutions to solve a few of them. He didn't seem to run most of the bi-weekly submitted code, though, so most people got 100s on everything.
I had the foresight to make a GroupMe group and send the link to both sections. Overwhelmingly negative. Nobody understands at thing. They ask after class, no help. Office hours, no better. People are going to fail. I'm ok only by virtue of experience. By class demand, I'm known as Professor in the group all semester. They even call me this before and after class when he's not there. Most of the class passed because of the countless explanations I gave in 15 weeks, be it one-on-one, group, or in chat. Good thing I've been a tutorial writer and tutor.
Class continues, never gets better. To shorten this already long story, 75% of the class ends with a C after a curve administration forced him to apply. Other instructors were informed of the issues and got involved for our saked. Someone began filing a formal complaint (unknown if finished). It was really, really bad. We had people graduating that semester who were in danger of graduating. And it wasn't the class' fault. Literally every person was doing their absolute best. They passed Intro I with an A or B and same for all their other courses (which were much harder than this class) but were failing this one class.
He may or may not have been fired, currently unsure. Dept is already understaffed, overworked, and been jilted of funds and resources (another rant!). We lost a (good!) instructor a few weeks ago. We 're adding new classes and programs and still trying to work out classes involving the "new" campus. Some people dropped the class and will retake. They may just get him again.
And yes, all of this 100% happened. There is no exaggerating or making this class up.
There's many more rants and stories from this class. Take your pick and I'll write it next.
* Exam 1
* Post Exam 1 review
* Exam 1 results fallout
* Pop quizzes
* Final exam
Note to self : stop trusting everyone in group assignments.
It always becomes a catastrophe right before the deadline 😥5
When I was at university in my last semester of my bachelor's, I was doing a game programming paper and our last assignment was to group up and make a game. So I go with one of the guys I know and this other dude since his previous game was really neat. Then two randoms joined that from my first impressions of their games wasn't much at all (one guy made four buttons click and called it a game in Java when we had to make games in c++ and the other guy used an example game and semi modded it.
Anyways we get to brain storming, totally waste too much time getting organised because the guy that volunteered (4 buttons guy) was slow to getting things sorted. Eventually we get to making the game and 4 buttons guy hasn't learnt how to use git, I then end up spending 3 hours over Skype explaining to him how to do this. He eventually learns how to do things and then volunteers to do the AI for the game, after about a week (this assignment is only 5 weeks long) he hasn't shown any progress, we eventually get to our 3rd week milestone no progress from him and the modder, with only three classes left we ask them both to get stuff done before a set deadline (modder wanted to do monsters and help 4 buttons with AI) both agreed and deadline rolls up and no work is shown at all, modest shows up extremely late and shows little work.
4 buttons guy leaves us a Skype message the day of our 2nd to last class,, saying he dropped the paper...
Modder did do some work but he failed to read all the documentation I left him (the game was a 2d multiplayer crafting game, I worked so hard to make a 2d map system with a world camera) he failed to read everything and his monsters used local coordinates and were stuck on screen!
With about a week left and not too many group meetings left we meet up to try and get stuff done, modder does nothing to help, the multiplayer is working my friend has done the crafting and weapon system and the map stuff is working out well. We're missing AI and combat, with our last few hours left we push to get as much stuff done, I somehow get stuck doing monster art, AI is done by the other two and I try to getting some of the combat and building done.
In the end we completely commented all of modders work because well it made us look bad lol. He later went to complain to my free claiming I did it and was a douchebag for doing so. We had to submit our developer logs and the three of us wrote about how shitty it was to deal with these two.
We tried out best not to isolate ourselves from them and definitely tried to help but we were swamped with our other assignments and what we had to work on.
In the end leaving and not helping right when the deadline is close was what I call the most shittiest thing team mates can do, I think sticking together even if we were to fail was at least a lot better.3
Let's call my college colleague Andrew.
Andrew knows that we have a really tight deadline to complete 2 different assignments to deliver in the same weekend for evaluation.
Andrew says that we really knows about coding, although we doesn't understand the most basic principles about OOP (like encapsulation, for example).
Whenever I asked for help, Andrew said that is "going to do some research" and that what I'm asking is "really hard". He then asked every single other group if then could provide him, with some code so he could "understand" what I asked him to do.
Once they said "no" he would come and tell me he really tried but hadn't be able to do it, 2 days after needed it, delaying the whole project.
Don't be like Andrew.4
Working on group assignments with people who don't know how to use GitHub is such a pain in the...5
Boy was I happy to see this when I opened devRant up.
So for starters, more group projects are necessary. Many reasons why. To begin with, it allows for more complex programs than getting some input and printing some shit out. It also develops interpersonal skills (I hate people too, but when you go out to look for work you'll be with them, so better get used to it soon). If a platform like GitHub is used, it's easy to track who did what, and see what each person in the group did, so it should be fairly easy to discourage lazy asses.
Beyond that, stop giving us half completed assignments and asking us to fill in a function/method. Yes, it will take longer. But one doesn't learn to program by doing the minimum required work, you've got to crash and burn a lot in order to git gud. So ffs, let us do all the work. We're like AI, we learn through reinforcement learning.
Stop giving us a spec to follow. We'll do plenty of that in the future, right now we need to make mistakes, not be held by the hand all the way. Let us do dumb shit so you can fail us and tell us our code is repulsive, and this other way was better. Explain why. That's how people learn, not by telling us what each function should return, what can and can't be used, etc. And if you can't come up with a scenario in which what you're teaching is useful, then maybe you're not teaching us the right material.
I'll leave it at that for today... But I'll be back 😈
Back at my masters degree there were 3 group projects and 2 of them were dev related. Being the last to enroll and classes had already started, I entered a team missing one person. 2 out the 3 team members were complaining how they couldn't keep up with the workload and kept doing nothing on the group assignments. The other person and me did all the work because we wanted to get good marks on the project. Sadly, the teams remained the same on the 2nd semester, mainly because all the star students were grouped together to our chagrin. This time though, neither the teammate nor me were lenient on our comments during group assessment which influenced heavily on the individual marking.
Pentesting for undisclosed company. Let's call them X as to not get us into trouble.
We are students and are doing our first pentest at an actual company instead of assignments at school. So we're very anxious. But today was a good day.
We found some servers with open ports so we checked a few of them out. I had a set of them with a bunch of open ports like ftp and... 8080. Time to check this out.
"please install flash player"... Security risk 1 found!
System seemed to be some monitoring system. Trying to log in using admin admin... Fucking works. Group loses it cause the company was being all high and mighty about being secure af. Other shit is pretty tight though.
Able to see logs, change password, add new superuser, do some searches for USERS_LOGGEDIN_TODAY! I shit you not, the system even had SUGGESTIONS for usernames to search for. One of which had something to do with sftp and auth keys. Unfortunatly every search gave a SQL syntax error. Used sniffing tools to maybe intercept message so we could do some queries of our own but nothing. Query is probably not issued from the local machine.
Tried to decompile the flash file but no luck. Only for some weird lines and a few function names I presume. But decompressing it and opening it in a text editor allowed me to see and search text. No GET or POST found. No SQL queries or name checks or anything we could think of.
That's all I could do for today. So we'll have to think of stuff for next week. We've already planned xss so maybe we can do that on this server as well.
We also found some older network printers with open telnet. Servers with a specific SQL variant with a potential exploit to execute terminal commands and some ftp and smb servers we need to check out next week.
Hella excited about this!
If you guys have any suggestions let us know. We are utter noobs when it comes to this.6
On the introduction day of my Computer science course, we all were to sit in "welcome groups" and tell a little bit about our programming background.
Most of us were beginners, but one of the guys told me he'd been "messing around with some Java a while back", so I thought I'd ask him about help when we had our first real Java programming assignment. I was surprised to learn that he wasn't able to help me at all. He seemed to know less than me, a complete beginner, on the different OO concepts and Java syntax. Furthermore, he seemed to have zero interest in anything development related.
It was later revealed that he meant that he had been messing around with INSTALLING Java on his computer a while back, but never really made it work. *facepalm*
Needless to say, he was a great group member in the assignments that followed. /s2
Soo, we are starting with some group-assignments in java next week at UNI. They are like three-week assignments I think.
The question now is, should I make the guys in my group use GIT? Yeah, it's stupid not to, but it might take long enough for them to learn it that it is an unnecessary use of time...
On the other hand, we could easier review each other's code before leaving it as is.
We even have an in-house Github enterprise server, meaning they won't have to make an account or anything. They can just log in with their UNI-user on GitHub desktop, which is rather simple.
But the workflow might be a bit tedious to get into? I haven't really tried to learn git to anyone before, everyone I have worked with just uses it anyways...
(Sidepoint, none of these guys have done any programming before last semester when they learned python.)7
How do I create a Collab..
Well, I'm looking to form a team of 2 - 4 members. We will be devoted to learning machine learning through books, Kaggle, self assignments and various group discussions and pair programming. We will form a group name, open a GitHub account and upload our projects there. Am looking up to extending it to build projects together. This can also help us build our portfolios.
There are no tight requirements. But some good programming skills especially in Python will be great and a good understanding of high school math. We will be learning together.3
Didn't happen to me, but to a friend. It was freshman year of college and we were taking an intro engineering course where we had to take apart an old camera and replace some gear in the camera with one we designed ourselves to change the shutter speed. We were split into groups of 3 and had to submit our first lab report detailing our design plan by week 2 into the quarter. Right before the due date, one of the kids in my friends group DROPS OUT OF COLLEGE because he thought the project (2 weeks in) was too hard, leaving my friend and her partner to finish his third of the report that he didn't do. They didn't even get a third partner for the remainder or the class. Two people had to bear the work of a quarters worth of assignments meant for groups of 3. Thankfully they were able to do everything and got a passing grade in the end.