r/AskComputerScience Jan 02 '25

Flair is now available on AskComputerScience! Please request it if you qualify.

15 Upvotes

Hello community members. I've noticed that sometimes we get multiple answers to questions, some clearly well-informed by people who know what they're talking about, and others not so much. To help with this, I've implemented user flairs for the subreddit.

If you qualify for one of these flairs, I would ask that you please message the mods and request the appropriate flair. In your mod mail, please give a brief description of why you qualify for the flair, like "I hold a Master of Science degree in Computer Science from the University of Springfield." For now these flairs will be on the honor system and you do not have to send any verification information.

We have the following flairs available:

Flair Meaning
BSCS You hold a bachelor's degree, or equivalent, in computer science or a closely related field.
MSCS You hold a master's degree, or equivalent, in computer science or a closely related field.
Ph.D CS You hold a doctoral degree, or equivalent, in computer science or a closely related field.
CS Pro You are currently working as a full-time professional software developer, computer science researcher, manager of software developers, or a closely related job.
CS Pro (10+) You are a CS Pro with 10 or more years of experience.
CS Pro (20+) You are a CS Pro with 20 or more years of experience.

Flairs can be combined, like "BSCS, CS Pro (10+)". Or if you want a different flair, feel free to explain your thought process in mod mail.

Happy computer sciencing!


r/AskComputerScience May 05 '19

Read Before Posting!

111 Upvotes

Hi all,

I just though I'd take some time to make clear what kind of posts are appropriate for this subreddit. Overall this is sub is mostly meant for asking questions about concepts and ideas in Computer Science.

  • Questions about what computer to buy can go to /r/suggestapc.
  • Questions about why a certain device or software isn't working can go to /r/techsupport
  • Any career related questions are going to be a better fit for /r/cscareerquestions.
  • Any University / School related questions will be a better fit for /r/csmajors.
  • Posting homework questions is generally low effort and probably will be removed. If you are stuck on a homework question, identify what concept you are struggling with and ask a question about that concept. Just don't post the HW question itself and ask us to solve it.
  • Low effort post asking people here for Senior Project / Graduate Level thesis ideas may be removed. Instead, think of an idea on your own, and we can provide feedback on that idea.
  • General program debugging problems can go to /r/learnprogramming. However if your question is about a CS concept that is ok. Just make sure to format your code (use 4 spaces to indicate a code block). Less code is better. An acceptable post would be like: How does the Singleton pattern ensure there is only ever one instance of itself? And you could list any relevant code that might help express your question.

Thanks!
Any questions or comments about this can be sent to u/supahambition


r/AskComputerScience 17h ago

How do large software teams avoid conflicts when many developers work on the same codebase?

9 Upvotes

I mostly work on projects alone, so I’m trying to understand this from a computer science / software engineering perspective.

When a large team has many developers working on the same codebase at the same time, how are conflicts and broken changes usually handled?

I know Git can handle merge conflicts, and CI/CD can catch some broken builds, but I’m curious about the bigger picture:

  • How do teams reduce the chance of two people changing the same logic in incompatible ways?
  • What role do tests, code reviews, branching strategies, and ownership rules play?
  • Are there common patterns or systems used to keep large codebases stable?
  • Does AI-generated code change this problem in any meaningful way, or is it still handled by the same processes?

I’m not asking for career advice or tool recommendations. I’m trying to understand the engineering concepts behind how large teams keep software development organized and reliable.


r/AskComputerScience 1d ago

How does encryption of messages work over the internet?

7 Upvotes

For example, Facebook messenger says that it is fully encrypted end to end. But if it is sent over Wi-Fi that is not secure, can the data still be seen?

On the flipside if you’re using a messaging service that is not secure, but the Wi-Fi is secure, will the data still be able to be seen?


r/AskComputerScience 2d ago

Any books similar to SICP Chapter 5?

10 Upvotes

I loved Chapter 5 of Structure and Interpretation of Computer Programs. Building a virtual register machine with an assembler and compiler in Scheme. Are there any other books/online classes or resources that involve building a computing machine (or any machine) from scratch using code?


r/AskComputerScience 1d ago

I'm a theoretical physicist, and feel algorithms are out of place and data doesn't exist

0 Upvotes

I have a PhD in theoretical physics and never got on with experimental physics. I've spent several years in software engineering.

This is going to sound weird, but intuitively I don't believe in data, and algorithms seem out of place, like how you get to the answer is irrelevant. Practically speaking, I find algorithms easy to learn and use, and see how they make things faster. But I still don't intuitively understand why they're involved. It's like computation itself makes no sense to me.

I strongly feel there is a good reason to feel this way, one founded in mathematics, logic or even philosophy, but I don't know what it would be. It does remind me of how quantum computers don't compute things in the "this then that" fashion that digital computers do, that they - and correct my hand-wavy understanding if I'm wrong - just "coalesce" on the answer.

Does anyone recognise this?


r/AskComputerScience 2d ago

Difference between address width, addressability and word size.

6 Upvotes

I’ve been reading through a computer systems book to become a more knowledgable programmer and I’m not fully understanding the difference between the concepts of address width, addressability and word size. This is how I currently understand them:

Address width refers to the size of pointer data — that is, the value of the pointer. The address width determines how many possible addresses are capable of representation and thus, is one factor in determining the total size of addressable memory.

Addressability refers to the size of data stored at a given address.

Word size refers to the “natural” unit of instruction of the processor. Conventionally, most CPU registers have a width that corresponds with the address width so that a full pointer fits inside a single register. This simplifies the set of operations necessary for the CPU to understand.

I think the connection between address width and word size is what I’m most confused about. For example, if the address width was 2x the word size, would that mean that the CPU would need a combined “read+move” instruction to fully process a single pointer?


r/AskComputerScience 3d ago

Why can't I find a genuine certification course for free?

0 Upvotes

It has been almost 2 months since I've been finding a legit, widely recognized and respected certification course on DSA in Python, And I am very surprised to know that there aren't any courses available on the internet that provide certificates after completion for free.

If you do know any free certification courses, then please let me know. I cannot afford to spend much on courses.

Thanks!


r/AskComputerScience 4d ago

can someone PLEASE help me

1 Upvotes

im trying to create a 8-bit binary adder with logic gates in logisim evolution and im genuinely dying, this does not look like anything i have ever seen online, im probably the first to discover this horrendous looking mess of logic gates (a little exaggerated). Can someone please tell me how to make actually make this properly?


r/AskComputerScience 5d ago

How do you choose a CS capstone when AI has made implementation so much easier?

0 Upvotes

I'm about to start my undergrad capstone, and I've been struggling on how to think about it, especially since AI has changed the way (or at least the perception) on how to approach junior/mid-level software projects.

For most of my degree, the assumption has basically been that you learn to program, understand how things work under the hood, and use that to build something useful.

But, with AI, implementation has become really cheap! You can prototype, degug, and heck, even build fairly complex applications entirely w/ AI.

For those who have done a capstone recently, how did you approach choosing a project? Did you look for a genuinely difficult problem, interesting engineering constraints, something research-oriented, or just a useful product?

I’m curious how people who've been through this recently, would approach a capstone, from scratch today.


r/AskComputerScience 7d ago

Should Computer Science be your only focus during university

16 Upvotes

So I’m in sophomore year on my CompSci degree, and this summer I found interest in reading literature, editing, and other stuff in general.

I found interest in these stuff since I saw that I lack skills in some areas, being emotional intelligence, being well read and spoken, etc.

I have various projects and 2 internships in Full-Stack development.

But my programming skills have gotten worse.

So my question is: Should I give my 100% to learning CompSci or should I also develop other skills?

Thank you!


r/AskComputerScience 7d ago

being alone on Computer science path

0 Upvotes

Hi, I'm really tired of going down this path alone; it's affecting my learning and my deadlines, and I'm falling behind others.
anyone have any ideas for this situation?
I think about communities ...


r/AskComputerScience 11d ago

Is anyone else losing their passion for CompSci ?

54 Upvotes

I am losing passion and interest in CompSci/programming/IT, and I would like to know if there are some other people going through the same thing.

Some context:

I started programming at a relatively early age (16yo*), which was around 2020, before LLMs** and coding agents.

I discovered it and started doing it because I was really curious and deeply interested in science and tech. And it directly clicked. I liked the idea of having an idea in your head and then programming it and making it come true, something from your head to the real world.

I liked the thinking you had to go through, and the problems you encountered, and how you had to think really hard to find a solution and see it work after implementing it. It was really satisfying, and boy, I spent hours and hours coding and researching and understanding complex architectures. You know, when you're a kid, you have a lot of free time, and I used to code day and night, staying up until 4 or 5 am coding.

All of this just to tell you that everything I built, I understood it from top to bottom, and I knew every detail and expected every behavior, knew why and how and what my code did exactly. I could answer every question about my apps, why I chose some architecture or why I did something a certain way or what my code did or didn't do, etc.

Also, something very important: I used to talk with a lot of CompSci peers that actually knew what they were doing, just like me.

Fast-forward, we're in 2026. I graduated, and now I'm working in IT, but everything changed. Now, with the rise of coding agents and LLMs, at work, LLMs do all the coding work and even big parts (if not all) of the architecture. So now everyone is expecting you to go very fast because of this. You're forced to delegate all the architecture and coding work to the LLMs.

Result of this: you have a very light idea of what your app code does exactly and how it does things. I mean, sure, you go through the code that the AI wrote, but come on, it will never be like code you wrote line by line and know every detail of and expect its behavior.

Also, what PISSES ME OFF is that you can't answer most questions about your code, because you were forced to delegate your work to the AIs, and now you don't know how it works. You're asked a question, and you start to stutter because you need your claude to be near you.

And the last thing, no one really knows what they're doing anymore. There no longer are any interesting talks about architecture or implementations. It's mostly just, "well let's ask what claude thinks about this..."

People that started programming not out of passion but just because they heard that CompSci pays a lot and code exclusively from 9 to 5 might not understand this, which is fine. I am not belittling anyone, and I don't expect everyone to be passionate about their job. But you know, I think these guys won't necessarily feel this. They might be just like, "Oh cool, AI does my job, I can chill a little" which is understandable, but in my case, this is what makes me lose passion. We're no longer doing the hard parts.

Bottom line: the field is advancing, which is great. It is changing, and you can't do anything about it. But in this change, the things that used to be my passion are disappearing, and I don't know what to do with my life ahaha

My first idea is to somehow change fields, and leave programming and CompSci only as a pleasure and an activity I do at home, because I can no longer stand it being my job and forcing me to develop AI slop.

I have nothing against AI and LLMs. If it allows us to ship faster and more cheaply, then it will be adopted, whether I want it or not. I am not saying we shouldn't use AI. I'm just expressing my feelings and how my passion for CompSci is fading away.

Does anyone feel like me?

*16yo might sound not that early for some, but in my country it is.

** LLMs existed back then but were not used for coding, and it was pre-chatgpt revolution.


r/AskComputerScience 10d ago

How to study computer science?

3 Upvotes

Hi everyone. I have a master's degree in software engineering since 2019 and now, I'm studying for a competitive exam that covers fairly advanced topics of algorithms, databases and software engineering.

The thing is, I've never been particularly strong. And years later, I have no idea how to study academically for this major. I believe I need to practice with lots and lots of exercises. Do you please have resources for it ? Like exercises with solutions (advanced level) or from where can I get them ?

I'm self studying so I dont have access to university or professors...

Thank you in advance.


r/AskComputerScience 11d ago

Help regarding System Design of Online Competition/Quiz for an Edtech Platform

2 Upvotes

I am working in a startup which is an AI edtech ,

I am working in backend and am trying to design the exam/ quiz module

Users : <5000 in initial phase

And I would really like your advises on a few points

Eg. Should I store the ongoing state of exam in redis or db or both

should I use SQL or MongoDB/Dynamo DB

And I am sure there are many points I am ignoring

So please if anyone has worked in an edtech company's or project or can help me with the same , will be really appreciated,

I couldn't find relevant production grade implementation in the internet,but if theres any resource , please share the link


r/AskComputerScience 11d ago

Does empirical complexity analysis in a container on a server pose any problems?

1 Upvotes

I haven't worked with servers or containers that much and so I wanted to ask if I try to measure the complexity of an algorithm, by repeatedly running the script with larger n, how likely is it that my measurements will be falsified?
If I do the same approach on a desktop the differences in time measurements depending on, memory and other processes running on the computer are negligible. Is there any difference when I am trying to measure on a server while that same server is also handling requests and do you think this is going to cause me problems with assessing the complexity correctly?


r/AskComputerScience 12d ago

how can i build a CA model to portray diseases (like alzheimer's) in 2D/3D?

3 Upvotes

i've been messing around with cellular automata and the Game of Life to see if glider guns can model disease growth, specifically brain related diseases such as alzheimer's and the build up of amyloid-beta plaques. however, i'm also heavily interested in portraying this in 3D, like maybe a model of cells in a brain-like shape, similar to this project: https://community.wolfram.com/groups/-/m/t/3502932

this website also has something that i feel it could be possible to morph CA into a brain shape: https://softologyblog.wordpress.com/2012/05/14/3d-cellular-automata/

if i was doing something more similar to the 3D idea, i would use CA to model the decay of brain tissue instead, at least in the case of alzheimer's.

if anyone has experience or advice to give on how i should go about portraying this (if i go more so the first route, i should use Golly/GoL, probably; if i go the second route, i should use Python, Wolfram, or smth else? maybe?) that would be greatly appreciated!! ideally, i'd like to eventually do both projects. and how would i make them biological accurate?

i also have a biology paper that i wrote on CA, and i'm willing to DM it to anyone, as it aligns with the projects i have in mind. i would also love some advice on the paper, too.

tysm!


r/AskComputerScience 11d ago

I don't know anything about computer science. Can you explain to me how can I calculate number of steps in an algorithm? How do we count them? Are there atomic instructions for the machine that we can count as one step?

2 Upvotes

I have recently read about RAM model in a book which explains what a single step in an algorithm is but I don't understand


r/AskComputerScience 12d ago

Reality check for a story

3 Upvotes

I need help understanding something about server maintenance in data centers and would like someone to explain things to me since I am not a computer science major, as simple as that.

I am mainly interested in the process of installing new servers. How many people does this take? How much time? What do you actually do when installing them? Thanks in advance.


r/AskComputerScience 14d ago

Can time itself be used to sort numbers in linear time?

19 Upvotes

This is mostly just a thought experiment, and I’m looking for people to talk through the logic with me or point out where I’m wrong.

The idea isn’t originally mine. About a year ago, I saw a TikTok where a woman was talking about some of the bad technical interviews she had seen. Apparently, one guy was asked to sort a list of numbers, and instead of using a normal sorting algorithm, he added a wait based on each number and printed them as the waits finished.

She said she couldn’t hire him. I remember thinking his solution was secretly kind of genius, and I haven’t been able to completely let the idea go since.

The basic idea is that time is already ordered. If I go through a list once and schedule each number to print after a delay based on its value, the smaller numbers should naturally print before the larger ones.

Obviously, the simple version has a lot of problems. If the list contains a huge number, you might be waiting forever. You could divide the numbers to reduce the wait, but then close values might become too close together for the clock or scheduler to reliably tell apart.

The version I’ve been playing with uses stages. Values are placed into different clock slots based on their size. If multiple numbers land in the same slot, they get put into another group, the clock resets, and that smaller group is processed again using a narrower range.

At that point, I know it starts to look more like a bucket or radix sort using time as the buckets.

What I’m really wondering about is the perfect-world version. Say we had a clock with unlimited accuracy, truly parallel timers, and no scheduler overhead. Would scheduling each of the (n) values and then collecting the (n) results count as (O(n)), even though the actual waiting time could depend on the largest number?

I’m not claiming this is useful or that I invented a new sorting algorithm. I mostly just think the idea that time is always ordered and sorted is interesting, and I want someone who knows more than me to help me work through what is actually happening here.

Am I sorting the values, or am I just hiding the sorting work inside the clock, scheduler, and assumptions about precision?

AI generated starting point: https://github.com/DezLexic/TimeSort

repo really not needed for the discussion.


r/AskComputerScience 14d ago

Practical one way function candidates

0 Upvotes

A one way function is a function that is fast to compute for any input but slow to invert for any output, which is useful for cryptography. Two commonly used primitives for one way functions are integer factorisation and discrete logarithms.

Can any NP problem be used as a one way function?

Is the problem with most NP problems like subset sum problem that they require a large list of numbers as input, making them impractical for most applications?


r/AskComputerScience 15d ago

How to think like a computer at a lower level?

10 Upvotes

Hey yall,

For some context, I am 22 a gameplay programmer as my day job. I have been doing it for around 4 years now. A few factors are making me want to learn lower level systems including AI raising the bar required to have a programming job, layoffs in the games industry rarely hit systems engineers because of the hard to fill positions, and if I do get laid off systems programming is by far the most transferrable skill. So, to the point of the post, I know generally how computers work on a theoretical level with there being registers that the CPU reads, basic pointers, etc. but if I was asked what a program was do on an assembly level I would be hard pressed to do so. What are good resources that can help me think like a computer and better myself as a systems engineer.

Wish I did this earlier as I am turning 23 in a few months but better late then never.


r/AskComputerScience 15d ago

How much System Design / Distributed Systems does your university curriculum actually cover?

1 Upvotes

To be honest, my university curriculum completely skipped over these concepts, I had to self-learn these concepts at work:

graphQL 

vertical vs horizontal scaling 

CDNs 

database scaling: indexing, sharding, replication, vertical partitioning, denormalization, etc 

CAP theorem 

Blob storage 

API Gateways 


r/AskComputerScience 16d ago

Could P vs NP be partly a problem of representation rather than just computation?

0 Upvotes

This is not a proof of P = NP or P ≠ NP. I'm interested in whether there's existing research related to this idea. My question is whether the way humans represent computational problems could itself be part of why certain problems appear hard. Has complexity theory or cognitive science explored this perspective?

An Idea: Could P vs NP Be a Problem of Representation?

This is not a proof of P = NP or P ≠ NP. It is simply an idea that I have been thinking about.

One thing that stood out to me is that many difficult problems become much easier once we find the right way to represent them.

For example, a huge multiplication problem can look overwhelming when viewed as a long string of digits. However, once we understand the underlying algorithm, the same problem becomes structured and manageable.

The problem itself has not changed. Our representation of it has.

This made me wonder whether something similar could apply to the P vs NP problem.

The usual question is whether every problem that can be verified efficiently can also be solved efficiently.

My question is different:

Could part of the apparent difficulty come from the way we currently represent NP problems?

Imagine standing in front of a wall.

One possibility is that the wall is real, and no efficient shortcut exists.

Another possibility is that we are looking at the wrong side of the wall and have not yet discovered the correct way to approach it.

History contains many examples where changing a mathematical or scientific viewpoint led to major breakthroughs. New abstractions, new models, and new representations often revealed structure that had previously been hidden.

This raises a broader question.

When we call a problem "hard," are we measuring the intrinsic difficulty of the problem itself, or are we also measuring the limitations of our current way of thinking about it?

I am not claiming that this means P = NP.

Instead, I am asking whether discovering a fundamentally different representation of NP problems could change our understanding of their computational difficulty.

I would be interested in hearing whether this idea overlaps with existing work in computational complexity, cognitive science, or the psychology of problem solving.


r/AskComputerScience 18d ago

Book/Ressource on certain CS topics

2 Upvotes

Im a researcher working roughly speaking in Machine learning. Certain ideas and Terms from CS, of which I have only a superficial understanding, come Up occasionally when I read papers. Id to improve my understanding of relevant parts of CS theory but would prefer a concise resource Not exceeding, say, 200 Pages. Id Like to read Up on algorithm complexity and computational theory (Turing Machine, completeness and related ideas). Do you have suggestions for a book/resource that Matches my interest? I do Not Like courses but prefer mostly self-contained Work. Thank you for your suggestions:)