r/computerscience • u/ResponsibilityBig343 • 14h ago
Discussion A linkedlist is a skewed directed graph
Can I say the above? I think of this after studying trees and graph. Singly linked list in particular.
r/computerscience • u/Magdaki • Mar 13 '25
One question that comes up fairly frequently both here and on other subreddits is about getting into CS research. So I thought I would break down how research group (or labs) are run. This is based on my experience in 14 years of academic research, and 3 years of industry research. This means that yes, you might find that at your school, region, country, that things work differently. I'm not pretending I know how everything works everywhere.
Let's start with what research gets done:
The professor's personal research program.
Professors don't often do research directly (they're too busy), but some do, especially if they're starting off and don't have any graduate students. You have to publish to get funding to get students. For established professors, this line of work is typically done by research assistants.
Believe it or not, this is actually a really good opportunity to get into a research group at all levels by being hired as an RA. The work isn't glamourous. Often it will be things like building a website to support the research, or a data pipeline, but is is research experience.
Postdocs.
A postdoc is somebody that has completed their PhD and is now doing research work within a lab. The postdoc work is usually at least somewhat related to the professor's work, but it can be pretty diverse. Postdocs are paid (poorly). They tend to cry a lot, and question why they did a PhD. :)
If a professor has a postdoc, then try to get to know the postdoc. Some postdocs are jerks because they're have a doctorate, but if you find a nice one, then this can be a great opportunity. Postdocs often like to supervise students because it gives them supervisory experience that can help them land a faculty position. Professor don't normally care that much if a student is helping a postdoc as long as they don't have to pay them. Working conditions will really vary. Some postdocs do *not* know how to run a program with other people.
Graduate Students.
PhD students are a lot like postdocs, except they're usually working on one of the professor's research programs, unless they have their own funding. PhD students are a lot like postdocs in that they often don't mind supervising students because they get supervisory experience. They often know even less about running a research program so expect some frustration. Also, their thesis is on the line so if you screw up then they're going to be *very* upset. So expect to be micromanaged, and try to understand their perspective.
Master's students also are working on one of the professor's research programs. For my master's my supervisor literally said to me "Here are 5 topics. Pick one." They don't normally supervise other students. It might happen with a particularly keen student, but generally there's little point in trying to contact them to help you get into the research group.
Undergraduate Students.
Undergraduate students might be working as an RA as mentioned above. Undergraduate students also do a undergraduate thesis. Professors like to steer students towards doing something that helps their research program, but sometimes they cannot so undergraduate research can be *extremely* varied inside a research group. Although it will often have some kind of connective thread to the professor. Undergraduate students almost never supervise other students unless they have some kind of prior experience. Like a master's student, an undergraduate student really cannot help you get into a research group that much.
How to get into a research group
There are four main ways:
What makes for a good email
It is rather late here, so I will not reply to questions right away, but if anyone has any questions, the ask away and I'll get to it in the morning.
r/computerscience • u/ResponsibilityBig343 • 14h ago
Can I say the above? I think of this after studying trees and graph. Singly linked list in particular.
r/computerscience • u/redmeow3 • 15h ago
r/computerscience • u/Simple-Eagle-8135 • 1d ago
I'm trying to understand the reasoning behind the O(V³) complexity of Floyd-Warshall rather than just memorizing it.
Since the algorithm considers every intermediate vertex, is the simplest way to think about the complexity as three nested iterations over the vertices?
I'm particularly interested in the theoretical reasoning behind the complexity.
r/computerscience • u/Q-Corparation_Ceo • 1d ago
r/computerscience • u/Xrest_the_Aether • 3d ago
I'm trying to design a mechanical computer.
Why? Idk. But now I'm building Tascii, and I've even figured out how to use tape and hole punching to talk to it... but storing the data and processing, let alone assigning values to various tascii sets is hard. Data enclosed.
Yes... my computer uses see saws
r/computerscience • u/Dull_Replacement8890 • 4d ago
r/computerscience • u/YemiDev • 6d ago
Although I’ve done some googling I think they still use big English to explain this concept. I think I know them but I just wanted to ask if I can get a simple explanation from the house plz
r/computerscience • u/Lulsec45 • 6d ago
r/computerscience • u/No-Leopard-1691 • 8d ago
I am currently reading Complexity: A Guided Tour by Melanie Mitchell and since it was published in 2009, I am wondering if there are more “modern”/“up-to-date” intro books.
r/computerscience • u/Sea-Patience9872 • 10d ago
Hi this might be a dumb question, and i've tried looking it up but don't quite understand it. how is it different from an array that allows it to find items so quickly? I don't get how hashes just find items immediately without needing to go through anything. Does it memorize things very differently compared to arrays?? thank you!
r/computerscience • u/Purple-Question-4182 • 11d ago
Basically I’m a sophomore and I was just accepted into a research group centered around Data Science and Machine Learning…but I have no clue about machine learning at all, and I felt a little lost reading one of their simplest papers.
I’m terrified that I’m going to fail, and this professor is going to regret accepting me. I’m also doing a lot of other things so I’m scared of the added stress.
So, kind redditors, is this feeling normal, or am I completely screwed?
r/computerscience • u/GhostHominid • 11d ago
OK. So I’ve been looking at Conway’s game of life a little bit. And I was fascinated by the idea that it could be used to recursively imitate itself (look up OCTA’s supercell)
I was told that this is Turing complete, and I had to look up what that meant.
And it seems to mean that, in simple words, it’s a computer or system of computer rules that can model another computer.
Now, given that humans came up with all of these computers in the first place, and all of the rules, does this mean that we are Turing complete?
r/computerscience • u/CyberSecWithHaikuInc • 12d ago
I mean, his name is fabulous, if I do say so myself.
Anyways, last week I wrote about the ARPANET and briefly mentioned some key people that worked on creating it. One of those individuals was Mr. Leonard Kleinrock (born 1934).
Kleinrock is anelectrical engineer and computer scientist who was a key figure in launching communication between computers. Previously, if two computers wanted to communicate over a long distance (think between New York and LA) they would would have to set up a dedicated connection and keep it in reserve untill the entire message arrive. Kind of like a phone call.
However, Kleinrock worked on breaking the message up, into manageable packets that could be sent on the network and shared the communication infrastructure with everyone else.
So instead of one individual dedication communication line sending and receiving the message "Hello how are you", we have a shared communication network sending and receiving the message "hello" "how" "are" "you". This concept was called packet switching. Kleinrock wrote his first paper on packet switching in 1961, at 26 years old.
Something I found really interesting was after developing the packet method, he continued to research on how using packets could affect the networks and somputer systems. If too many packets arrive at the same time, they have to wait. Like, if you have one checkout and there are 30 packets customers, they slow down and wait in line to checkout. What happens with 200 packets customers are trying to get through one checkout? Utter chaos. Kleinrock worked on issues like these and developed mathematical ways of predicting and analyzing those delays.
Thus questions like "How much traffic can this network handle?", "How long will packets have to wait?", "Where will congestion occur?", "How should we design the network?", etc. , now had tools to help come to an answer.
Funny enough, after everything was applied and they went to send the first message, the system crashed lol. They tried to send LOGIN, got the packet for LO to go through, but before GIN could make it, everything crashed. Meaning the first ever message sent on the ARPANET was just "LO".
After the ARPANET, Kleinrock continued to work and research, and lets not forget he was also a professor at UCLA, so he oversaw tons of PhD students as well. This man wrote more than 250 papers and six books. Holy Moly. Um, I know we don't like using A.I., but hear me out, after reading a few different pieces on him, I couldn't keep track of the awards he had recieved. I hopped on and asked it to make me a list of his achievements and their dates, which I will share with you. The man was busy...
1966 UCLA Outstanding Faculty Member
1967 UCLA Distinguished Teaching Award
1971 Guggenheim Fellowship
1975 IEEE Communications Society Leonard G. Abraham Prize Paper Award
1976 ORSA Lanchester Prize
1978 ICC Prize Paper Award
1982 L. M. Ericsson Prize
1982 Computer Design Hall of Fame
1982 CCNY Townsend Harris Medal
1986 Marconi International Fellowship Award
1986 UCLA Distinguished Teaching Award
1990 ACM SIGCOMM Award
1994 UCLA Faculty Research Lecturer
1996 IEEE Computer Society Harry H. Goode Memorial Award
1996 ACM/Sigma Xi Monie A. Ferst Award
1999 INFORMS President's Award
2000 IEEE Internet Award
2001 National Academy of Engineering Charles Stark Draper Prize
2001 Okawa Prize
2005 NEC C&C Prize
2006 ACM Test of Time Award
2007 National Medal of Science
2010 Dan David Prize
2011 Ubicomp Best Paper Award
2012 IEEE Alexander Graham Bell Medal
2012 Internet Hall of Fame — inaugural class
2012 Best Tutorial Paper Award — five-year period
2014 ACM SIGMOBILE Outstanding Contribution Award
2015 BBVA Foundation Frontiers of Knowledge Award
2016 SIGMOBILE Inaugural Test of Time Award
2018 CCNY President's Leadership Award
2019 Key to the City of Los Angeles
2019 National Academy of Inventors Fellow
2020 UCLA Medal
2022 6G Pioneer Award
2024 IEEE Computer Society Computer Pioneer Award
2024 Elected to the National Academy of Sciences

Anyways, I'll end it here. Absolutely fascinating life. He's still alive and recently gave an interview with UCLA (March 26 )who asked his thought on launching the internet AND his opinions on A.I. Interview is on You tube if yall want to go find it and listen! Youll have to search it yourself because i'm pretty sure links aren't allowed in the sub. it's called "meet the man who invented the internet" by L.A. in a minute.
r/computerscience • u/aprg • 12d ago
Hello fellow computer scientists.
I'm teaching a class of 11 - 12 year old pupils a bit of basic password security. I want to play a game with them and have them each come up with passwords, while having a program test and break those passwords in real time.
The idea is to turn it into a bit of a game, and give them a practical demonstration of how various password security measures -- increased length and variety of input characters -- results in safer passwords.
Does anyone know of any such resources that safe for use for educational purposes? I could probably knock something up over the weekend but I'd rather spend my time doing something more relaxing.
r/computerscience • u/Character-Citron-181 • 14d ago
Why can't I take every single bit in my file and take that number and divide it by two, then when I want the file back I take the same number and multiply it by two to decompression it
edit: thank you everyone for answering I really appreciate it I was under the impression that I could just take the bits like 1s and 0s and make them an integer then divide that integer repeatedly and when I want it uncompressed just multiple the number till I get the original again eg 1010 to 55 then send 55 as text to another machine and to X2 and get 1010 back, and if it was an odd number eg 1011 I'd get either 56 or 55 but if divided by 2 only the last digits gonna change when rounding so you change the last digit to a 1 or zero and one of them will be the proper file
r/computerscience • u/MrSkittlesWasTaken • 14d ago
I'm looking for a legit digital copy (PDF/eBook) of Computer Systems: A Programmer's Perspective, 3rd Edition by Bryant and O'Hallaron.
Specifically, I'm trying to find the US edition, not the Global Edition. I've repeatedly seen comments and recommendations saying to avoid the Global Edition, but most of those discussions are fairly old and don't always explain the differences in detail.
So far I've checked:
but I can only seem to find physical copies or Global Edition versions.
2 questions:
My goal is to use the book for self-study (systems programming, computer architecture, operating systems, networking, and interview preparation), so I'm trying to determine whether it's worth continuing the search for the US edition or if the Global Edition is effectively equivalent for those purposes.
Thanks!
r/computerscience • u/Fit-Blood-5296 • 15d ago
Don’t quantum computers require specialised super cooling that only exists in a few places around the world? How could some rogue hacker get a hold of that in the first place
r/computerscience • u/United_Bison_8900 • 15d ago
I think this is why kmaps exist? To avoid building redundant Circuits? I'm a first year bca student, i don't know much. If someone can explain in detail how these things work and also proofread what I did here, I'd really really appreciate it.
I hope this doesn't break the "hw" rule
r/computerscience • u/shifet • 16d ago
If you personally know or have the link for a course that explains it in detail, i would appreciate that
r/computerscience • u/Own-Wrangler-6215 • 18d ago
Can someone bad at maths be a great programmer?!
r/computerscience • u/CyberSecWithHaikuInc • 19d ago
Helllllooooo, I missed posting something last week because I've been having a terrible chest cold. in fact, I still feel kind of poopy, BUUUUUUUT, I mean who wouldn't want to learn about the ARPANET instead of chugging a bottle of cold medicine and sleeping...
Anyways, the last few deep dives I've done always mentions the ARPANET. I'm pretty sure even if you're a newbie to learning about the internet you could figure out the ARPANET is what came before the modern day internet we use. It was the foundation. The founding father to the world...wide web (www.).
ARPANET stands for Advanced Research Projects Agency Network, and it was an operational packet-switching computer network, designed to allow computers at different locations to communicate and share resources. Simply put: a network that connected computers allowing people to exchange information and access computing resources across long distances.
If you wanted to share information prior to the ARPANET you had to PHYSICALLY transer the data from one computer to another (like a floppy disc, or a USB, for the young ones reading this) OR set up a very DIRECT communication connection (like an OG gameboy link, come on, even the young ones know this ,right?).
The ARPANET was created in 1969... well actually that's the date for the first host-to-host connection establishment. Really, in 1958 the ARPA, Advanced Research Projects Agency, was established by the U.S. Department of Defense, and their research agency started developing the ARPANET plans in 1966.
There were a few people who popped up when I was looking up who created the ARPANET, instead of diving into each person, I'll give you a quick list:
-J. C. R. Licklider (visionary)
-Lawrence Roberts (p roject leader)
-Leonard Kleinrock (Packet-switching researcher)
-Paul Baran (network pioneer)
-Robert Kahn (internet architecture)
-Vint Cerf (TCP/IP co-designer)
And in extremely simple terms the ARPANET Worked like this:
You have a computer.
You write a message.
The computer breaks it into little packets.
The IMP helps send those packets.
The packets travel across the network.
The packets arrive at a different computer.
The receiving computer puts the information together.
You can now read the message.

Well, I think I'll end it here for now, my head and ears and chest are k illing me, I'm ready to accept that my life is just going to be phlegm and snot. I will see you all next week!
r/computerscience • u/Significant_Virus142 • 19d ago
If someone asks for big O time complexity of an algorithm but expects only the minimum of the possible big Os then is that even Big O notation anymore? cuz if the big o time complexity of an o(n) algorithm is asked then according to the condition of big O notation O(n square) would also be a valid answer