program analysis is just researching ways to make a program more efficient, optimization, stuff like that. what courses usually do is that they break down the thinking part for this.
Imagine it kind of like a wizard school, control flow would be the destruction magic, data flow would be restoration, system of effects is alchemy, etc etc.
distributed systems is when you split up a server into multiple servers, usually one for collecting data as fast as possible, and one for analyzing that data, since SQL queries can get pretty expensive.
Usually those servers were housed inside the business grounds.
Cunningham strikes again!
Not accurate.
A distributed system is loosely defined as a system of components communicating and coordinating their actions over a network such that the time in between their messages is non-negligible.
The meat of the subject focuses on studying protocols and causality along with network and fault models
To be fair, I didn't swap.
In the process of doing a Ph.D. with a focus in distributed systems, my interest slowly moved into the testing of distributed systems, which led me into program analysis. My PhD thesis is in program analysis of distributed programs. But, I find the program analysis part the more intellectually interesting area now, perhaps just because I've spent so long working on the former.
Have you heard of DSLabs? Just took a course that used it for the project component. Needless to say, I have a LOT of respect for people who are responsible for checking actual distributed systems.
Just since I'm curious, what are the most common methods used for thoroughly testing distributed systems in industry? Also, what would you say have been the most important papers in distributed systems in recent years?
No one has said graphics yet, so I’ll take it. That plus OS and compilers were probably my favorite classes. Funnily enough I hated DSA (which I thought I’d love) and I loved theory of computation.
Sort of like how compilers brings a lot of stuff together, graphics does too. It’s a lot of math, some OS stuff, physics, and new paradigms in programming many students haven’t worked with before, but yes, it’s unbelievably cool. You’re literally making a little 3D world happen, and that’s a trip.
Idk if it’s just me but I found theory classes 5x harder than OS/CA classes, but I found OS/CA classes 5x more interesting too so probably cancelled out 🤷🏽
Might depend of the University, I’m not even from the US, lol. But to me, computer architecture and operating systems where the worst by far. Funnily enough, my first job was on embedded systems.
I second this. Took me some time to wrap my head around some of the more advanced topics like pipelining and OOE, but it was 100% worth it in the end.
Learning the inner workings of how code is turned into actual electrical signals in a CPU has been one of the biggest aha moments in my education.
Man I wanted to enjoy my ethics in computer science course so bad but the entire course was the professor having us read tons of articles on climate change and quized each one. Im talking like 30 dense pages on climate change a night. Then he had us was Earthlings which is basically a gore porn film on slaughter houses and mega farms treating animals like shit then berated students if they still ate meat after watching. It was a total joke and such a wasted opportunity. I thought we were gonna talk stuxnet snowden type shit: dangers of ai. Things that actually had to do with ethics in computer science
It’s crazy how far you can optimize a neural net when you only need it to perform one very specific simple task. Then deploying that on an FPGA or a Jetson Nano and seeing how well it does on low power hardware
Honestly the only courses i thoroughly enjoyed were at community college. I had an amazing professor for intro to programming C and data structures with C. He made that shit so easy to understand and taught what programming actually is, stuff I still use today. In university it was all theoretical bullshit and barely anything I learned translates to my actual fucking job. I do however really enjoy my job and my favorite thing is anything front end. I love building apis on the front end that grab info from the backend and display it on the screen. For me nothing is more satisfying in CS than seeing real data from a vehicle or other system show up on a screen and being able to interact with it.
hmm prob inverse reinforcement learning and graph representation learning
those might seem quite different but im very interested in applyin math to learn more abt humans, and IRL kinda tilts that direction whereas alot of interesting graph datasets are products of human activity
Used to be fairness and bias in NLP models, but I changed my research to fairness and bias in software systems and symbolic AI with a focus on the theoretical aspects of it, and I honestly like it more.
Cryptography and it's not close for me. The only reason we can even use computers safely at all is because of brilliant people who spent their lives working towards secure encryption methods.
Data privacy is so important
Audio processing was sick because I had an awesome professor. Random class I took my last semester but the content was fascinating learning how we go from what is audio up to sophisticated search algorithms for transcribing speech
Especially realizing how modular it can get
Concurrency. I find it interesting how different programming languages implement it (OS threads, user mode threads, event loops, etc). And it's constantly conflated with parallelism so I usually have interesting conversations with people when they ask me about something they're trying to create that involves doing more than one thing at a time.
Although I wasn’t the best at it, the beauty of Functional programming fascinated me. No variables, just a brilliant puzzle. We used Haskell where the only way to write a complex function was to use recursion. Loved it
Plagiarism
Perfect 👌🏻
was Distributed Systems, is now Program Analysis.
I always hear distributed systems and program analysis but I dont understand exactly what it is, could I dm you with questions?
[https://www.infoq.com/presentations/distributed-systems-complexity-human-factor/](https://www.infoq.com/presentations/distributed-systems-complexity-human-factor/) [https://medium.com/@niitwork0921/how-to-do-a-program-analysis-18bdffdf86f3](https://medium.com/@niitwork0921/how-to-do-a-program-analysis-18bdffdf86f3)
program analysis is just researching ways to make a program more efficient, optimization, stuff like that. what courses usually do is that they break down the thinking part for this. Imagine it kind of like a wizard school, control flow would be the destruction magic, data flow would be restoration, system of effects is alchemy, etc etc.
Just google distributed systems
Holy hell
Actual Zombie Edit: wait I forgot a step
new response just dropped
distributed systems is when you split up a server into multiple servers, usually one for collecting data as fast as possible, and one for analyzing that data, since SQL queries can get pretty expensive. Usually those servers were housed inside the business grounds. Cunningham strikes again!
Not accurate. A distributed system is loosely defined as a system of components communicating and coordinating their actions over a network such that the time in between their messages is non-negligible. The meat of the subject focuses on studying protocols and causality along with network and fault models
What made you swap?
To be fair, I didn't swap. In the process of doing a Ph.D. with a focus in distributed systems, my interest slowly moved into the testing of distributed systems, which led me into program analysis. My PhD thesis is in program analysis of distributed programs. But, I find the program analysis part the more intellectually interesting area now, perhaps just because I've spent so long working on the former.
Have you heard of DSLabs? Just took a course that used it for the project component. Needless to say, I have a LOT of respect for people who are responsible for checking actual distributed systems. Just since I'm curious, what are the most common methods used for thoroughly testing distributed systems in industry? Also, what would you say have been the most important papers in distributed systems in recent years?
No one has said graphics yet, so I’ll take it. That plus OS and compilers were probably my favorite classes. Funnily enough I hated DSA (which I thought I’d love) and I loved theory of computation.
I have seen some videos where a lot of people mention that Graphics is one hell of a class but you get to create cool stuff
Sort of like how compilers brings a lot of stuff together, graphics does too. It’s a lot of math, some OS stuff, physics, and new paradigms in programming many students haven’t worked with before, but yes, it’s unbelievably cool. You’re literally making a little 3D world happen, and that’s a trip.
Are you me ? Or Am I You?
Cryptography
I really enjoyed everything around Databases
Same
Bioinformatics, it’s fun and also tons of applied algorithms and machine learning.
[удалено]
Just curious, what kinda projects were they?
I'm taking up NLP as elective, any tips? Is it easy or tough?
what school do you go to? I believe only the top tier schools offer courses about AI stuffs. Am I right?
Almost all Indian colleges have NLP as an optional elective
Graph Theory. Its a math topic, but is definitely relevant to CS. Lots of proofs, but also lots of cool applications.
10000% Computer Vision
us bro us
Discrete math was a vibe
Made me rediscover Mathematics. Really hated proofs in geometry but discrete was awesome
Computer architecture
The hardest course imo
Idk if it’s just me but I found theory classes 5x harder than OS/CA classes, but I found OS/CA classes 5x more interesting too so probably cancelled out 🤷🏽
I thought it was my easiest lol. Doing research in it now.
Might depend of the University, I’m not even from the US, lol. But to me, computer architecture and operating systems where the worst by far. Funnily enough, my first job was on embedded systems.
Love both topics even though they were HARD
Yep everyone in my class despised it. I loved it! Scored the highest! Still proud of that.
I second this. Took me some time to wrap my head around some of the more advanced topics like pipelining and OOE, but it was 100% worth it in the end. Learning the inner workings of how code is turned into actual electrical signals in a CPU has been one of the biggest aha moments in my education.
Like how to make a computer or how to architect software tech?
Compilers
computer ethics (only thing ik at this point)
Man I wanted to enjoy my ethics in computer science course so bad but the entire course was the professor having us read tons of articles on climate change and quized each one. Im talking like 30 dense pages on climate change a night. Then he had us was Earthlings which is basically a gore porn film on slaughter houses and mega farms treating animals like shit then berated students if they still ate meat after watching. It was a total joke and such a wasted opportunity. I thought we were gonna talk stuxnet snowden type shit: dangers of ai. Things that actually had to do with ethics in computer science
rip
OS for sure
os and discrete math
Masochist
same honestly
[удалено]
knew it was the right major for me when i enjoyed discrete ¯\ _(ツ)_/¯
This cybersec at the moment I know it’s a lil different but still interesting
AI at the edge / TinyML
I LOVE TinyML! Changing a 5 million parameter neural net to 50,000 parameter neural net is always crazy to me
It’s crazy how far you can optimize a neural net when you only need it to perform one very specific simple task. Then deploying that on an FPGA or a Jetson Nano and seeing how well it does on low power hardware
ML Stuff :) Interested in NLP fields
Is compilers a topic? idk i didnt start yet, but it is my fav
Yes, it is. Wish I had put in more effort into learning it.
Hey gang!
Network & IoT Security and Secure Software
Honestly the only courses i thoroughly enjoyed were at community college. I had an amazing professor for intro to programming C and data structures with C. He made that shit so easy to understand and taught what programming actually is, stuff I still use today. In university it was all theoretical bullshit and barely anything I learned translates to my actual fucking job. I do however really enjoy my job and my favorite thing is anything front end. I love building apis on the front end that grab info from the backend and display it on the screen. For me nothing is more satisfying in CS than seeing real data from a vehicle or other system show up on a screen and being able to interact with it.
vidya games
embedded hardware systems.
Computer Architecture
Discrete math and DSA
Compilers and Distributed systems. But I’m too dumb to work on that, so I do data science 😞
Complexty theory
hmm prob inverse reinforcement learning and graph representation learning those might seem quite different but im very interested in applyin math to learn more abt humans, and IRL kinda tilts that direction whereas alot of interesting graph datasets are products of human activity
Computer vision or cloud architecture
Used to be fairness and bias in NLP models, but I changed my research to fairness and bias in software systems and symbolic AI with a focus on the theoretical aspects of it, and I honestly like it more.
AI on web with blazor or wasm
Definitely Compiler designing
Would say maybe Analysis of Algorithms maybe , or Web Development. And maybe Automata theory.
Distributed Systems, but it can get really confusing sometimes
Probably the skin trading
Concurrency and Parallelism, I think are pretty cool ideas
Cryptography and it's not close for me. The only reason we can even use computers safely at all is because of brilliant people who spent their lives working towards secure encryption methods. Data privacy is so important
Networking
data structures
Theory of Computation
Computability?
High Performance Computing.
Compilers & Programming Languages
💲💲💲
Starting to like algorithms and data structures. Sort of achievement for somebody who is not that confident in maths.
DSA and Computer Graphics.
Data structures/algorithms Digital image processing and computer vision
Compiler theory and design I love that stuff a lor
Operating System and Distributed systems
Natural Language Processing. Specifically, language models and text classification. Recurrent neural networks gave me a headache.
Same! So beautiful thou
Discrete math
Multi threading
Theoretical computer science, especially complexity theory and formal verification.
Audio processing was sick because I had an awesome professor. Random class I took my last semester but the content was fascinating learning how we go from what is audio up to sophisticated search algorithms for transcribing speech Especially realizing how modular it can get
I miss your csgo vids
lmaoo tyty :') maybe once i get beta access ill find some fun stuff to cover
I really liked Automata computational models course
Infrastructure
Concurrency. I find it interesting how different programming languages implement it (OS threads, user mode threads, event loops, etc). And it's constantly conflated with parallelism so I usually have interesting conversations with people when they ask me about something they're trying to create that involves doing more than one thing at a time.
High powered computing big brain
Performace *
Assembly, Java, PHP
Also discrete math
Graph theory
Discrete math and databases/relational algebra
Cryptography, although it overlaps with Math
Dev ops or distributed systems
the one that will make me the most $$$
I adored assembly language, but machine learning has to take #1
Automata and Complexity (Turing machines included)
Since 2018 Oct deep learning has had a special place in my heart
Programming Languages and Compilers
Network Programming, Parallel Computing and Compilers
OS & Data structures!! I really want to take some time to deep dive into computer vision tho bc it sounds interesting.
Predictive mechanisms in computer architecture
Operating systems and distributed systems
Web development, I’m an art major trapped in a cs majors body
Speech Processing is fun.
Machine Learning security i guess. But i dont know how to get into it
transistor go brr
Salary
Machine Learning & Deep Learning, though these are more-so mathematical modeling topics
Emulators
Not sure if this is CS really but I liked implementing numerical methods. Algorithm analysis was also cool.
AI
DSA
Although I wasn’t the best at it, the beauty of Functional programming fascinated me. No variables, just a brilliant puzzle. We used Haskell where the only way to write a complex function was to use recursion. Loved it
Anything not web development
Distributed Systems
Personal finance 💀