This ranking is designed to identify institutions and faculty actively engaged in research across a number of areas of computer science, based on the number of publications by faculty that have appeared at the most selective conferences in each area of computer science (see the FAQ for more details).
We gratefully acknowledge the generous support of our sponsors, including Stony Brook University . Sponsor CSrankings
Prominent mentions of CSrankings: CMU ( 1 , 2 ) | Edinburgh | Michigan | Rutgers | Technion | Yann LeCun | John Regehr | Charles Sutton
Computer Science is a constantly evolving field that has transformed the world we live in today. With new technologies emerging every day, there are countless research opportunities in this field. Whether you are interested in artificial intelligence, machine learning, cybersecurity, data analytics, or computer networks, there are endless possibilities to explore. In this post, we will delve into some of the most interesting and important research topics in Computer Science. From the latest advancements in programming languages to the development of cutting-edge algorithms, we will explore the latest trends and innovations that are shaping the future of Computer Science. So, whether you are a student or a professional, read on to discover some of the most exciting research topics in this dynamic and rapidly expanding field.
Computer Science Research Topics
Computer Science Research Topics are as follows:
Using machine learning to detect and prevent cyber attacks
Developing algorithms for optimized resource allocation in cloud computing
Investigating the use of blockchain technology for secure and decentralized data storage
Developing intelligent chatbots for customer service
Investigating the effectiveness of deep learning for natural language processing
Developing algorithms for detecting and removing fake news from social media
Investigating the impact of social media on mental health
Developing algorithms for efficient image and video compression
Investigating the use of big data analytics for predictive maintenance in manufacturing
Developing algorithms for identifying and mitigating bias in machine learning models
Investigating the ethical implications of autonomous vehicles
Developing algorithms for detecting and preventing cyberbullying
Investigating the use of machine learning for personalized medicine
Developing algorithms for efficient and accurate speech recognition
Investigating the impact of social media on political polarization
Developing algorithms for sentiment analysis in social media data
Investigating the use of virtual reality in education
Developing algorithms for efficient data encryption and decryption
Investigating the impact of technology on workplace productivity
Developing algorithms for detecting and mitigating deepfakes
Investigating the use of artificial intelligence in financial trading
Developing algorithms for efficient database management
Investigating the effectiveness of online learning platforms
Developing algorithms for efficient and accurate facial recognition
Investigating the use of machine learning for predicting weather patterns
Developing algorithms for efficient and secure data transfer
Investigating the impact of technology on social skills and communication
Developing algorithms for efficient and accurate object recognition
Investigating the use of machine learning for fraud detection in finance
Developing algorithms for efficient and secure authentication systems
Investigating the impact of technology on privacy and surveillance
Developing algorithms for efficient and accurate handwriting recognition
Investigating the use of machine learning for predicting stock prices
Developing algorithms for efficient and secure biometric identification
Investigating the impact of technology on mental health and well-being
Developing algorithms for efficient and accurate language translation
Investigating the use of machine learning for personalized advertising
Developing algorithms for efficient and secure payment systems
Investigating the impact of technology on the job market and automation
Developing algorithms for efficient and accurate object tracking
Investigating the use of machine learning for predicting disease outbreaks
Developing algorithms for efficient and secure access control
Investigating the impact of technology on human behavior and decision making
Developing algorithms for efficient and accurate sound recognition
Investigating the use of machine learning for predicting customer behavior
Developing algorithms for efficient and secure data backup and recovery
Investigating the impact of technology on education and learning outcomes
Developing algorithms for efficient and accurate emotion recognition
Investigating the use of machine learning for improving healthcare outcomes
Developing algorithms for efficient and secure supply chain management
Investigating the impact of technology on cultural and societal norms
Developing algorithms for efficient and accurate gesture recognition
Investigating the use of machine learning for predicting consumer demand
Developing algorithms for efficient and secure cloud storage
Investigating the impact of technology on environmental sustainability
Developing algorithms for efficient and accurate voice recognition
Investigating the use of machine learning for improving transportation systems
Developing algorithms for efficient and secure mobile device management
Investigating the impact of technology on social inequality and access to resources
Machine learning for healthcare diagnosis and treatment
Machine Learning for Cybersecurity
Machine learning for personalized medicine
Cybersecurity threats and defense strategies
Big data analytics for business intelligence
Blockchain technology and its applications
Human-computer interaction in virtual reality environments
Artificial intelligence for autonomous vehicles
Natural language processing for chatbots
Cloud computing and its impact on the IT industry
Internet of Things (IoT) and smart homes
Robotics and automation in manufacturing
Augmented reality and its potential in education
Data mining techniques for customer relationship management
Computer vision for object recognition and tracking
Quantum computing and its applications in cryptography
Social media analytics and sentiment analysis
Recommender systems for personalized content delivery
Mobile computing and its impact on society
Bioinformatics and genomic data analysis
Deep learning for image and speech recognition
Digital signal processing and audio processing algorithms
Cloud storage and data security in the cloud
Wearable technology and its impact on healthcare
Computational linguistics for natural language understanding
Cognitive computing for decision support systems
Cyber-physical systems and their applications
Edge computing and its impact on IoT
Machine learning for fraud detection
Cryptography and its role in secure communication
Cybersecurity risks in the era of the Internet of Things
Natural language generation for automated report writing
3D printing and its impact on manufacturing
Virtual assistants and their applications in daily life
Cloud-based gaming and its impact on the gaming industry
Computer networks and their security issues
Cyber forensics and its role in criminal investigations
Machine learning for predictive maintenance in industrial settings
Augmented reality for cultural heritage preservation
Human-robot interaction and its applications
Data visualization and its impact on decision-making
Cybersecurity in financial systems and blockchain
Computer graphics and animation techniques
Biometrics and its role in secure authentication
Cloud-based e-learning platforms and their impact on education
Natural language processing for machine translation
Machine learning for predictive maintenance in healthcare
Cybersecurity and privacy issues in social media
Computer vision for medical image analysis
Natural language generation for content creation
Cybersecurity challenges in cloud computing
Human-robot collaboration in manufacturing
Data mining for predicting customer churn
Artificial intelligence for autonomous drones
Cybersecurity risks in the healthcare industry
Machine learning for speech synthesis
Edge computing for low-latency applications
Virtual reality for mental health therapy
Quantum computing and its applications in finance
Biomedical engineering and its applications
Cybersecurity in autonomous systems
Machine learning for predictive maintenance in transportation
Computer vision for object detection in autonomous driving
Augmented reality for industrial training and simulations
Cloud-based cybersecurity solutions for small businesses
Natural language processing for knowledge management
Machine learning for personalized advertising
Cybersecurity in the supply chain management
Cybersecurity risks in the energy sector
Computer vision for facial recognition
Natural language processing for social media analysis
Machine learning for sentiment analysis in customer reviews
Explainable Artificial Intelligence
Quantum Computing
Blockchain Technology
Human-Computer Interaction
Natural Language Processing
Cloud Computing
Robotics and Automation
Augmented Reality and Virtual Reality
Cyber-Physical Systems
Computational Neuroscience
Big Data Analytics
Computer Vision
Cryptography and Network Security
Internet of Things
Computer Graphics and Visualization
Artificial Intelligence for Game Design
Computational Biology
Social Network Analysis
Bioinformatics
Distributed Systems and Middleware
Information Retrieval and Data Mining
Computer Networks
Mobile Computing and Wireless Networks
Software Engineering
Database Systems
Parallel and Distributed Computing
Human-Robot Interaction
Intelligent Transportation Systems
High-Performance Computing
Cyber-Physical Security
Deep Learning
Sensor Networks
Multi-Agent Systems
Human-Centered Computing
Wearable Computing
Knowledge Representation and Reasoning
Adaptive Systems
Brain-Computer Interface
Health Informatics
Cognitive Computing
Cybersecurity and Privacy
Internet Security
Cybercrime and Digital Forensics
Cloud Security
Cryptocurrencies and Digital Payments
Machine Learning for Natural Language Generation
Cognitive Robotics
Neural Networks
Semantic Web
Image Processing
Cyber Threat Intelligence
Secure Mobile Computing
Cybersecurity Education and Training
Privacy Preserving Techniques
Cyber-Physical Systems Security
Virtualization and Containerization
Machine Learning for Computer Vision
Network Function Virtualization
Cybersecurity Risk Management
Information Security Governance
Intrusion Detection and Prevention
Biometric Authentication
Machine Learning for Predictive Maintenance
Security in Cloud-based Environments
Cybersecurity for Industrial Control Systems
Smart Grid Security
Software Defined Networking
Quantum Cryptography
Security in the Internet of Things
Natural language processing for sentiment analysis
Blockchain technology for secure data sharing
Developing efficient algorithms for big data analysis
Cybersecurity for internet of things (IoT) devices
Human-robot interaction for industrial automation
Image recognition for autonomous vehicles
Social media analytics for marketing strategy
Quantum computing for solving complex problems
Biometric authentication for secure access control
Augmented reality for education and training
Intelligent transportation systems for traffic management
Predictive modeling for financial markets
Cloud computing for scalable data storage and processing
Virtual reality for therapy and mental health treatment
Data visualization for business intelligence
Recommender systems for personalized product recommendations
Speech recognition for voice-controlled devices
Mobile computing for real-time location-based services
Neural networks for predicting user behavior
Genetic algorithms for optimization problems
Distributed computing for parallel processing
Internet of things (IoT) for smart cities
Wireless sensor networks for environmental monitoring
Cloud-based gaming for high-performance gaming
Social network analysis for identifying influencers
Autonomous systems for agriculture
Robotics for disaster response
Data mining for customer segmentation
Computer graphics for visual effects in movies and video games
Virtual assistants for personalized customer service
Natural language understanding for chatbots
3D printing for manufacturing prototypes
Artificial intelligence for stock trading
Machine learning for weather forecasting
Biomedical engineering for prosthetics and implants
Cybersecurity for financial institutions
Machine learning for energy consumption optimization
Computer vision for object tracking
Natural language processing for document summarization
Wearable technology for health and fitness monitoring
Internet of things (IoT) for home automation
Reinforcement learning for robotics control
Big data analytics for customer insights
Machine learning for supply chain optimization
Natural language processing for legal document analysis
Artificial intelligence for drug discovery
Computer vision for object recognition in robotics
Data mining for customer churn prediction
Autonomous systems for space exploration
Robotics for agriculture automation
Machine learning for predicting earthquakes
Natural language processing for sentiment analysis in customer reviews
Big data analytics for predicting natural disasters
Internet of things (IoT) for remote patient monitoring
Blockchain technology for digital identity management
Machine learning for predicting wildfire spread
Computer vision for gesture recognition
Natural language processing for automated translation
Big data analytics for fraud detection in banking
Internet of things (IoT) for smart homes
Robotics for warehouse automation
Machine learning for predicting air pollution
Natural language processing for medical record analysis
Augmented reality for architectural design
Big data analytics for predicting traffic congestion
Machine learning for predicting customer lifetime value
Developing algorithms for efficient and accurate text recognition
Natural Language Processing for Virtual Assistants
Natural Language Processing for Sentiment Analysis in Social Media
Explainable Artificial Intelligence (XAI) for Trust and Transparency
Deep Learning for Image and Video Retrieval
Edge Computing for Internet of Things (IoT) Applications
Data Science for Social Media Analytics
Cybersecurity for Critical Infrastructure Protection
Natural Language Processing for Text Classification
Quantum Computing for Optimization Problems
Machine Learning for Personalized Health Monitoring
Computer Vision for Autonomous Driving
Blockchain Technology for Supply Chain Management
Augmented Reality for Education and Training
Natural Language Processing for Sentiment Analysis
Machine Learning for Personalized Marketing
Big Data Analytics for Financial Fraud Detection
Cybersecurity for Cloud Security Assessment
Artificial Intelligence for Natural Language Understanding
Blockchain Technology for Decentralized Applications
Virtual Reality for Cultural Heritage Preservation
Natural Language Processing for Named Entity Recognition
Machine Learning for Customer Churn Prediction
Big Data Analytics for Social Network Analysis
Cybersecurity for Intrusion Detection and Prevention
Artificial Intelligence for Robotics and Automation
Blockchain Technology for Digital Identity Management
Virtual Reality for Rehabilitation and Therapy
Natural Language Processing for Text Summarization
Machine Learning for Credit Risk Assessment
Big Data Analytics for Fraud Detection in Healthcare
Cybersecurity for Internet Privacy Protection
Artificial Intelligence for Game Design and Development
Blockchain Technology for Decentralized Social Networks
Virtual Reality for Marketing and Advertising
Natural Language Processing for Opinion Mining
Machine Learning for Anomaly Detection
Big Data Analytics for Predictive Maintenance in Transportation
Cybersecurity for Network Security Management
Artificial Intelligence for Personalized News and Content Delivery
Blockchain Technology for Cryptocurrency Mining
Virtual Reality for Architectural Design and Visualization
Natural Language Processing for Machine Translation
Machine Learning for Automated Image Captioning
Big Data Analytics for Stock Market Prediction
Cybersecurity for Biometric Authentication Systems
Artificial Intelligence for Human-Robot Interaction
Blockchain Technology for Smart Grids
Virtual Reality for Sports Training and Simulation
Natural Language Processing for Question Answering Systems
Machine Learning for Sentiment Analysis in Customer Feedback
Big Data Analytics for Predictive Maintenance in Manufacturing
Cybersecurity for Cloud-Based Systems
Artificial Intelligence for Automated Journalism
Blockchain Technology for Intellectual Property Management
Virtual Reality for Therapy and Rehabilitation
Natural Language Processing for Language Generation
Machine Learning for Customer Lifetime Value Prediction
Big Data Analytics for Predictive Maintenance in Energy Systems
Cybersecurity for Secure Mobile Communication
Artificial Intelligence for Emotion Recognition
Blockchain Technology for Digital Asset Trading
Virtual Reality for Automotive Design and Visualization
Natural Language Processing for Semantic Web
Machine Learning for Fraud Detection in Financial Transactions
Big Data Analytics for Social Media Monitoring
Cybersecurity for Cloud Storage and Sharing
Artificial Intelligence for Personalized Education
Blockchain Technology for Secure Online Voting Systems
Virtual Reality for Cultural Tourism
Natural Language Processing for Chatbot Communication
Machine Learning for Medical Diagnosis and Treatment
Big Data Analytics for Environmental Monitoring and Management.
Cybersecurity for Cloud Computing Environments
Virtual Reality for Training and Simulation
Big Data Analytics for Sports Performance Analysis
Cybersecurity for Internet of Things (IoT) Devices
Artificial Intelligence for Traffic Management and Control
Blockchain Technology for Smart Contracts
Natural Language Processing for Document Summarization
Machine Learning for Image and Video Recognition
Blockchain Technology for Digital Asset Management
Virtual Reality for Entertainment and Gaming
Natural Language Processing for Opinion Mining in Online Reviews
Machine Learning for Customer Relationship Management
Big Data Analytics for Environmental Monitoring and Management
Cybersecurity for Network Traffic Analysis and Monitoring
Artificial Intelligence for Natural Language Generation
Blockchain Technology for Supply Chain Transparency and Traceability
Virtual Reality for Design and Visualization
Natural Language Processing for Speech Recognition
Machine Learning for Recommendation Systems
Big Data Analytics for Customer Segmentation and Targeting
Cybersecurity for Biometric Authentication
Artificial Intelligence for Human-Computer Interaction
Blockchain Technology for Decentralized Finance (DeFi)
Virtual Reality for Tourism and Cultural Heritage
Machine Learning for Cybersecurity Threat Detection and Prevention
Big Data Analytics for Healthcare Cost Reduction
Cybersecurity for Data Privacy and Protection
Artificial Intelligence for Autonomous Vehicles
Blockchain Technology for Cryptocurrency and Blockchain Security
Virtual Reality for Real Estate Visualization
Natural Language Processing for Question Answering
Big Data Analytics for Financial Markets Prediction
Cybersecurity for Cloud-Based Machine Learning Systems
Artificial Intelligence for Personalized Advertising
Blockchain Technology for Digital Identity Verification
Virtual Reality for Cultural and Language Learning
Natural Language Processing for Semantic Analysis
Machine Learning for Business Forecasting
Big Data Analytics for Social Media Marketing
Artificial Intelligence for Content Generation
Blockchain Technology for Smart Cities
Virtual Reality for Historical Reconstruction
Natural Language Processing for Knowledge Graph Construction
Machine Learning for Speech Synthesis
Big Data Analytics for Traffic Optimization
Artificial Intelligence for Social Robotics
Blockchain Technology for Healthcare Data Management
Virtual Reality for Disaster Preparedness and Response
Natural Language Processing for Multilingual Communication
Machine Learning for Emotion Recognition
Big Data Analytics for Human Resources Management
Cybersecurity for Mobile App Security
Artificial Intelligence for Financial Planning and Investment
Blockchain Technology for Energy Management
Virtual Reality for Cultural Preservation and Heritage.
Big Data Analytics for Healthcare Management
Cybersecurity in the Internet of Things (IoT)
Artificial Intelligence for Predictive Maintenance
Computational Biology for Drug Discovery
Virtual Reality for Mental Health Treatment
Machine Learning for Sentiment Analysis in Social Media
Human-Computer Interaction for User Experience Design
Cloud Computing for Disaster Recovery
Quantum Computing for Cryptography
Intelligent Transportation Systems for Smart Cities
Cybersecurity for Autonomous Vehicles
Artificial Intelligence for Fraud Detection in Financial Systems
Social Network Analysis for Marketing Campaigns
Cloud Computing for Video Game Streaming
Machine Learning for Speech Recognition
Augmented Reality for Architecture and Design
Natural Language Processing for Customer Service Chatbots
Machine Learning for Climate Change Prediction
Big Data Analytics for Social Sciences
Artificial Intelligence for Energy Management
Virtual Reality for Tourism and Travel
Cybersecurity for Smart Grids
Machine Learning for Image Recognition
Augmented Reality for Sports Training
Natural Language Processing for Content Creation
Cloud Computing for High-Performance Computing
Artificial Intelligence for Personalized Medicine
Virtual Reality for Architecture and Design
Augmented Reality for Product Visualization
Natural Language Processing for Language Translation
Cybersecurity for Cloud Computing
Artificial Intelligence for Supply Chain Optimization
Blockchain Technology for Digital Voting Systems
Virtual Reality for Job Training
Augmented Reality for Retail Shopping
Natural Language Processing for Sentiment Analysis in Customer Feedback
Cloud Computing for Mobile Application Development
Artificial Intelligence for Cybersecurity Threat Detection
Blockchain Technology for Intellectual Property Protection
Virtual Reality for Music Education
Machine Learning for Financial Forecasting
Augmented Reality for Medical Education
Natural Language Processing for News Summarization
Cybersecurity for Healthcare Data Protection
Artificial Intelligence for Autonomous Robots
Virtual Reality for Fitness and Health
Machine Learning for Natural Language Understanding
Augmented Reality for Museum Exhibits
Natural Language Processing for Chatbot Personality Development
Cloud Computing for Website Performance Optimization
Artificial Intelligence for E-commerce Recommendation Systems
Blockchain Technology for Supply Chain Traceability
Virtual Reality for Military Training
Augmented Reality for Advertising
Natural Language Processing for Chatbot Conversation Management
Cybersecurity for Cloud-Based Services
Artificial Intelligence for Agricultural Management
Blockchain Technology for Food Safety Assurance
Virtual Reality for Historical Reenactments
Machine Learning for Cybersecurity Incident Response.
Secure Multiparty Computation
Federated Learning
Internet of Things Security
Blockchain Scalability
Quantum Computing Algorithms
Explainable AI
Data Privacy in the Age of Big Data
Adversarial Machine Learning
Deep Reinforcement Learning
Online Learning and Streaming Algorithms
Graph Neural Networks
Automated Debugging and Fault Localization
Mobile Application Development
Software Engineering for Cloud Computing
Cryptocurrency Security
Edge Computing for Real-Time Applications
Natural Language Generation
Virtual and Augmented Reality
Computational Biology and Bioinformatics
Internet of Things Applications
Robotics and Autonomous Systems
Explainable Robotics
3D Printing and Additive Manufacturing
Distributed Systems
Parallel Computing
Data Center Networking
Data Mining and Knowledge Discovery
Information Retrieval and Search Engines
Network Security and Privacy
Cloud Computing Security
Data Analytics for Business Intelligence
Neural Networks and Deep Learning
Reinforcement Learning for Robotics
Automated Planning and Scheduling
Evolutionary Computation and Genetic Algorithms
Formal Methods for Software Engineering
Computational Complexity Theory
Bio-inspired Computing
Computer Vision for Object Recognition
Automated Reasoning and Theorem Proving
Natural Language Understanding
Machine Learning for Healthcare
Scalable Distributed Systems
Sensor Networks and Internet of Things
Smart Grids and Energy Systems
Software Testing and Verification
Web Application Security
Wireless and Mobile Networks
Computer Architecture and Hardware Design
Digital Signal Processing
Game Theory and Mechanism Design
Multi-agent Systems
Evolutionary Robotics
Quantum Machine Learning
Computational Social Science
Explainable Recommender Systems.
Artificial Intelligence and its applications
Cloud computing and its benefits
Cybersecurity threats and solutions
Internet of Things and its impact on society
Virtual and Augmented Reality and its uses
Blockchain Technology and its potential in various industries
Web Development and Design
Digital Marketing and its effectiveness
Big Data and Analytics
Software Development Life Cycle
Gaming Development and its growth
Network Administration and Maintenance
Machine Learning and its uses
Data Warehousing and Mining
Computer Architecture and Design
Computer Graphics and Animation
Quantum Computing and its potential
Data Structures and Algorithms
Computer Vision and Image Processing
Robotics and its applications
Operating Systems and its functions
Information Theory and Coding
Compiler Design and Optimization
Computer Forensics and Cyber Crime Investigation
Distributed Computing and its significance
Artificial Neural Networks and Deep Learning
Cloud Storage and Backup
Programming Languages and their significance
Computer Simulation and Modeling
Computer Networks and its types
Information Security and its types
Computer-based Training and eLearning
Medical Imaging and its uses
Social Media Analysis and its applications
Human Resource Information Systems
Computer-Aided Design and Manufacturing
Multimedia Systems and Applications
Geographic Information Systems and its uses
Computer-Assisted Language Learning
Mobile Device Management and Security
Data Compression and its types
Knowledge Management Systems
Text Mining and its uses
Cyber Warfare and its consequences
Wireless Networks and its advantages
Computer Ethics and its importance
Computational Linguistics and its applications
Autonomous Systems and Robotics
Information Visualization and its importance
Geographic Information Retrieval and Mapping
Business Intelligence and its benefits
Digital Libraries and their significance
Artificial Life and Evolutionary Computation
Computer Music and its types
Virtual Teams and Collaboration
Computer Games and Learning
Semantic Web and its applications
Electronic Commerce and its advantages
Multimedia Databases and their significance
Computer Science Education and its importance
Computer-Assisted Translation and Interpretation
Ambient Intelligence and Smart Homes
Autonomous Agents and Multi-Agent Systems.
About the author
Muhammad Hassan
Researcher, Academic Writer, Web developer
You may also like
500+ Economics Research Topics
200+ Funny Research Topics
300+ American History Research Paper Topics
500+ Argumentative Research Paper Topics
500+ Sports Research Topics
500+ Statistics Research Topics
Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.
View all journals
Explore content
About the journal
Publish with us
Sign up for alerts
CAREER FEATURE
01 April 2024
How scientists are making the most of Reddit
Hannah Docter-Loeb 0
Hannah Docter-Loeb is a freelance writer in Washington DC.
You can also search for this author in PubMed Google Scholar
It has been almost 18 months since Elon Musk purchased Twitter, now known as X. Since the tech mogul took ownership, in October 2022, the number of daily active users of the platform’s mobile app has fallen by around 15%, and in April 2023 the company cut its workforce by 80%. Thousands of scientists are reducing the time they spend on the platform ( Nature 613 , 19–21; 2023 ). Some have gravitated towards newer social-media alternatives, such as Mastodon and Bluesky. But others are finding a home on a system that pre-dates Twitter: Reddit.
Access options
Access Nature and 54 other Nature Portfolio journals
Get Nature+, our best-value online-access subscription
24,99 € / 30 days
cancel any time
Subscribe to this journal
Receive 51 print issues and online access
185,98 € per year
only 3,65 € per issue
Rent or buy this article
Prices vary by article type
Prices may be subject to local taxes which are calculated during checkout
Nature 628 , 221-223 (2024)
doi: https://doi.org/10.1038/d41586-024-00906-y
Fiesler, C., Zimmer, M., Proferes, N., Gilbert, S. & Jones, N. Proc. ACM Hum. Comp. Interact. 8 , 5 (2024).
Article Google Scholar
Proferes, N., Jones, N., Gilbert, S., Fiesler, C. & Zimmer, M. Soc. Media Soc . https://doi.org/10.1177/20563051211019004 (2021).
Download references
Related Articles
Information technology
How to network with the brightest minds in science
Career Feature 26 JUN 24
What it means to be a successful male academic
Career Column 26 JUN 24
Is science’s dominant funding model broken?
Editorial 26 JUN 24
The strategy behind one of the most successful labs in the world
Comment 26 JUN 24
Detecting hallucinations in large language models using semantic entropy
Article 19 JUN 24
Misinformation might sway elections — but not in the way that you think
News Feature 18 JUN 24
The dream of electronic newspapers becomes a reality — in 1974
News & Views 07 MAY 24
Faculty Positions in Westlake University
Founded in 2018, Westlake University is a new type of non-profit research-oriented university in Hangzhou, China, supported by public a...
Hangzhou, Zhejiang, China
Westlake University
2024-2025 Westlake Fellowship Applications Open
A Quick Career Path from Fresh PhD to Faculty
Hangzhou, Zhejiang (CN)
Technician - Senior Research Technician in Patient-Derived Tumour Organoids for Drug Resistance ERC
APPLICATION CLOSING DATE: July 26th, 2024 Join the Forefront of Cancer Research: Become a Research Technician / Senior Research Technician in Pati...
Human Technopole
Director, Office of Cancer Centers
Director, Office of Cancer Centers Office of the Director National Cancer Institute National Institutes of Health Department of Health and Human Se...
Bethesda, Maryland (US)
National Cancer Institute - OD
2024 Recruitment notice Shenzhen Institute of Synthetic Biology: Shenzhen, China
The wide-ranging expertise drawing from technical, engineering or science professions...
Shenzhen,China
Shenzhen Institute of Synthetic Biology
Sign up for the Nature Briefing newsletter — what matters in science, free to your inbox daily.
Quick links
Explore articles by subject
Guide to authors
Editorial policies
Stack Exchange Network
Stack Exchange network consists of 183 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Academia research vs. industry research (computer science)
After finishing my PhD in Computer Science (machine learning) and after several years as a university lecturer, I decided to transition from academia to industry. As a result of that, I have been working one year for a company, doing applied research.
In my latest performance review, my supervisor pointed out that my only negative point was that I still had an academic mindset towards research, and that I should be able to get better at what he called "risk analysis". He defined risk analysis as the skill of assessing in advance the potential benefits/drawbacks for the company of a given method/technique/algorithm. The aim of that is to be able to rapidly discard methods that are supposed to not solve the company's problems without having to waste too much time on implementing them.
I was wondering whether any learning resource exists (book, online course/resources) that may help me to acquire such a skill. More generally, any recommended reading about computer science research in industry would be much appreciated.
computer-science
3 This question appears to be off-topic because it not about academia; it is seeking resources about a specific skill for industry. – 410 gone Commented Jul 8, 2014 at 13:57
14 @EnergyNumbers This site is for academics as well as anyone in or interested in research-related or research-adjacent fields which includes industry research. You can debate whether "risk analysis" is really a research skill or not, but the fact that it takes place in industry research and not academia does not make it off-topic. – ff524 Commented Jul 8, 2014 at 14:00
1 When I was in engineering industry years ago, non-PhD managers often had this opinion of engineers with PhDs. Does your supervisor have a PhD? If so, you could ask them how they developed this skill. If not, then your manager is just "pointing out the obvious." Don't sweat it; you'll develop this skill over time. – Mad Jack Commented Jul 8, 2014 at 15:30
3 @ff524: I'd argue that "risk analysis", as defined here, is also used in academia - in "real" research, you also need to assess as early as possible whether a given approach/question/whatever will be fruitful, beneficial, whatever... or impractical, useless, whatever else. So +1 to your comment. – Stephan Kolassa Commented Jul 9, 2014 at 6:49
3 I find it mildly amusing that your very question and approach reveals a purely academic mindset, too -- "please recommend some books that can help to dig into the issue deeper". I mean, no offense, this is a perfectly legit approach, and I tend to do the same. What really helps is just understand the basics: how your particular company makes money and how economics works in general. For starters, try to measure any solution in dollars. E.g., what is cheaper: to research how to automate a certain manual process or to outsource it to low-pay workers? – rg_software Commented Jan 5, 2019 at 22:29
2 Answers 2
As a researcher in industry, let me first emphasize to you that "industry" is a much broader set of organizations and varies a lot more than most people realize. Thus, the answer to your question may depend quite a bit on the specifics of the company that you are at.
That said, however, in most cases a key animating idea for researchers in industry is a notion that often goes by a name like "customer focus": i.e., who will care about the results of this investigation?
Sometimes this is pretty straightforward (e.g., "if widget-making is 5% more efficient, then profit margins on widgets go up), but in other cases the relation is much more abstract or indirect (e.g., some prior work I did on potential programming languages for quantum computers that don't currently exist, but where the funder wanted to see how thinking about this might affect their goals for other research projects).
In all cases, however, you always have to be aware that somebody is paying the funds to support your salary and the salaries of your team, and they are giving you that money because they want some benefit to come from your research. This is true in academia as well, but professors are typically more insulated from it because their salaries are generally mostly supported by teaching---and even graduate students can be supported by TAships. If you're being paid to teach and expected to do research on the side, then it doesn't really matter what you're researching in the short term---but you will have more impact if you work on more important problems.
So, to the heart your question: how do you actually go about doing that?
I recommend starting by trying to be aware that at all times there is a "frontier" of research problems that you could be working on. Whenever you do a piece of work, you are choosing to prioritize one piece of that frontier over others. Notice this fact and ask yourself questions like:
Why did I choose this problem over those other ones?
How will solving this problem affect the other problems on my frontier?
Who else cares about the solution to this problem?
There can be lots of reasonable answers to these questions, but starting to ask them can be extremely helping in moving to a more conscious evaluation of your research choices and whether they're actually moving you in the direction that you want to go in your career.
For more thoughts and suggestions along these lines, I would recommend the following resources:
"You and Your Research" by Richard Hamming , a long-time industrial researcher at Bell Labs.
My own talk on "Surviving Life as a Researcher"
Here are some links for you
books from Amazon
more books from Amazon
I am not interested in risk assessment but if I was, would sort the books by customer review, would see what the people who read them think, if possible would look inside the book.
Have to say though that I find strange you didn't do it yourself before posting the question.
1 Thank you for your answer. I, indeed, did several searches on Google, Amazon, etc. prior to asking the question. The issue with that approach is that the amount of published information is overwhelming, and therefore I was expecting somebody to point me in a more right direction. – Pablo Suau Commented Jul 16, 2014 at 10:42
2 This reads like more of an admonishment than an answer – benxyzzy Commented May 1, 2019 at 9:03
this does not appear to be the "risk analysis" the question is referring to. – Marco Lübbecke Commented Jul 8, 2019 at 22:29
You must log in to answer this question.
Not the answer you're looking for browse other questions tagged computer-science industry ..
Featured on Meta
Upcoming sign-up experiments related to tags
Hot Network Questions
Short story about soldiers who are fighting against an enemy which turns out to be themselves
Is it legal to initialize an array via a functor which takes the array itself as a parameter by reference?
Is this professor being unnecessarily harsh or did I actually make a mistake?
Is our consciousness evidence of the existence of a true ontology that underlies many "conventional" ontologies?
Is it unethical to have a videogame open on a personal device and interact with it occasionally as part of taking breaks while working from home?
What rights does an employee retain, if any, who does not consent to being monitored on a work IT system?
Why would anyone kill a dragon rather than subdue it in OD&D?
Did James Madison say or write that the 10 Commandments are critical to the US nation?
What is a quarter in 19th-century England converted to contemporary pints?
Sarkhan, Soul Aflame Becoming a dragon that entered
Can a planet have a warm, tropical climate both at the poles and at the equator?
Can a unique position be deduced if pieces are replaced by checkers (can see piece color but not type)
What is the translation of lawfare in French?
Looking for a caveman-discovers-fire short story that is a pun on "nuclear" power
What US checks and balances prevent the FBI from raiding politicians unfavorable to the federal government?
How does a vehicle's brake affect the friction between the vehicle and ground?
Could Kessler Syndrome be used to control the temperature of the Earth?
50s or 60s sci-fi movie featuring scientists who learn to operate an abandoned flying saucer
Expressing internal energy of a system in thermodynamics
How exactly does a seashell make the humming sound?
Relationship between major and minor axis of an ellipse's circumference
Lines of intersections in a parabola
Issues with my D&D group
How to make sure to only get full frame lenses for the Canon EF (non-mirrorless) mount?
Undergraduate Research Opportunities
Undergraduates are an essential part of our leading-edge research. There are many ways to contribute to impactful research early in your career, from summer programs to paid research positions with faculty.
Year Long Research
Clare Boothe Luce Research Scholars an ISUR-affiliated program supporting undergraduate women in research and teaching in science, mathematics, and engineering. Eight scholars are selected and funded each year.
C3SR-Undergraduate Research in Artificial Intelligence is an IBM-Illinois and ISUR partnership funding undergraduate AI and cognitive computing research, from theory to practical application while working with a C3SR faculty mentor.
The National Center for Supercomputing Applications (NCSA) SPIN is an academic internship program for undergraduate students to participate in supercomputing, visualization, data analytics, and similar fields with five weekly paid hours.
Semester Long Research
CS Job Portal is our department's employment opportunities with course assistant and undergraduate research positions.
PURE (Promoting Undergraduate Research in Engineering) is a student-run research program connecting first-year and second-year students with graduate student mentors to jump-start their research careers.
Summer Research
The National Center for Supercomputing Applications (NCSA) INCLUSION program is a 10-week program for students from underrepresented communities to work in pairs with mentors on research aimed toward social impact based around open-source software development.
Summer Research Program for Undergraduates (SRP) students work on state-of-the-art research with university faculty while attending professional development programs aimed at making students strong researchers and graduate school candidates
Mind in Vitro Undergraduate Summer Research Program undergraduate researchers work with faculty mentors and graduate students on projects related to Mind in Vitro while participating in the Illinois summer research program networking, socials, lunches, and seminars.
Mentorship Opportunities
Showcase Opportunities
Engineering Research Fair is hosted by Grainger Engineering every semester for researchers to share their work and labs and for companies recruiting researchers.
Undergraduate Research Symposium is a yearly campus-wide research symposium for undergraduate researchers to present the results of their research and gain experience presenting work to a wider audience.
Computer Science
Research internship program.
The CS Research Internship Program at Yale provides applicants with a unique opportunity to conduct cutting-edge research with leading researchers in the field. Interns will get a chance to not only grow their knowledge in their area of interest, but also obtain hands-on experience working on projects that have real-world impact. We welcome applications from all students that are currently pursuing a bachelor, master or PhD degree in Computer Science or related fields.
Q: Can I contact a faculty member directly? A: Yes of course!
Q: What will happen if I apply here? A: A committee of faculty and staff members review applications regularly and try to match applicants with faculty members. If there is a match, the faculty member(s) will contact you directly to follow up.
Q: Is there a deadline for applications? A: While we review applications as we receive them, we encourage you to submit your application by December 15th if you are interested in opportunities in the coming summer.
Q: Where can I find information about potential internship projects? A: Many faculty members provide information about their research on their personal or lab websites. We do not maintain a list of potential projects at this point.
Q: Does the internship require physical presence in New Haven, CT? A: It depends on the research project. Many CS research projects can be perfectly carried out remotely. We have had several successful virtual internships in the past two years, especially since the start of the COVID-19 pandemic.
Q: Does the internship pay? A: It depends on the research projects. A full-time internship can receive a stipend commensurate with that of doctoral students.
Q: Does the program consider International Students? A: Yes! We have had international student interns both physically (pre-pandemic) and virtually (post-pandemic).
Q: Does the program sponsor the necessary visa for an international student to physically visit Yale? A: We used to do it before the pandemic. However, due to the COVID-19 pandemic, Yale has stopped sponsoring visas for visiting international students. This may change as the pandemic situation improves, but only virtual/remote internships are possible for international students at this point.
Q: Does the program cover my travel cost? A: It depends on the research projects.
Q: Does the internship provide health benefits or housing? A: No, you will be responsible for both.
Q: If I have applied here but not heard from you, what should I do? A: In general, if you have not heard from any Yale CS faculty member, that means a match has not been found yet. If it has been six months or there is any significant change in your credentials, you are welcome to apply again. You should also feel free to directly contact faculty members that you are interested in working with.
Still have questions? Reach out to us at cs-sip [AT] cs [DOT] yale [DOT] edu!
Still too much?
If the idea of self-studying 9 topics over multiple years feels overwhelming, we suggest you focus on just two books: Computer Systems: A Programmer's Perspective and Designing Data-Intensive Applications . In our experience, these two books provide incredibly high return on time invested, particularly for self-taught engineers and bootcamp grads working on networked applications. They may also serve as a "gateway drug" for the other topics and resources listed above.
Why learn computer science?
There are 2 types of software engineer: those who understand computer science well enough to do challenging, innovative work, and those who just get by because they’re familiar with a few high level tools.
Both call themselves software engineers, and both tend to earn similar salaries in their early careers. But Type 1 engineers progress toward more fulfilling and well-remunerated work over time, whether that’s valuable commercial work or breakthrough open-source projects, technical leadership or high-quality individual contributions.
The global SMS system does around 20bn messages a day. WhatsApp is now doing 42bn. With 57 engineers. pic.twitter.com/zZrtSIzhlR — Benedict Evans (@BenedictEvans) February 2, 2016
Type 1 engineers find ways to learn computer science in depth, whether through conventional means or by relentlessly learning throughout their careers. Type 2 engineers typically stay at the surface, learning specific tools and technologies rather than their underlying foundations, only picking up new skills when the winds of technical fashion change.
Currently, the number of people entering the industry is rapidly increasing, while the number of CS grads is relatively static. This oversupply of Type 2 engineers is starting to reduce their employment opportunities and keep them out of the industry’s more fulfilling work. Whether you’re striving to become a Type 1 engineer or simply looking for more job security, learning computer science is the only reliable path.
Subject guides
Programming.
Most undergraduate CS programs start with an “introduction” to computer programming. The best versions of these courses cater not just to novices, but also to those who missed beneficial concepts and programming models while first learning to code.
Our standard recommendation for this content is the classic Structure and Interpretation of Computer Programs , which is available online for free both as a book , and as a set of MIT video lectures . While those lectures are great, our video suggestion is actually Brian Harvey’s SICP lectures (for the 61A course at Berkeley) instead. These are more refined and better targeted at new students than are the MIT lectures.
We recommend working through at least the first three chapters of SICP and doing the exercises. For additional practice, work through a set of small programming problems like those on exercism .
Since this guide was first published in 2016, one of the most commonly asked questions has been whether we’d now recommend recordings of a more recent iteration of 61A taught by John DeNero, and/or the corresponding book Composing Programs , which is “in the tradition of SICP” but uses Python. We think the DeNero resources are also great, and some students may end up preferring them, but we still suggest SICP, Scheme, and Brian Harvey’s lectures as the first set of resources to try.
Why? Because SICP is unique in its ability—at least potentially—to alter your fundamental beliefs about computers and programming. Not everybody will experience this. Some will hate the book, others won't get past the first few pages. But the potential reward makes it worth trying.
If you don't enjoy SICP, try Composing Programs . If that still doesn't suit, try How to Design Programs . If none of these seem to be rewarding your effort, perhaps that's a sign that you should focus on other topics for some time, and revisit the discipline of programming in another year or two.
Finally, a point of clarification: this guide is NOT designed for those who are entirely new to programming. We assume that you are a competent programmer without a background in computer science, looking to fill in some knowledge gaps. The fact that we've included a section on "programming" is simply a reminder that there may be more to learn. For those who've never coded before, but who'd like to, you might prefer a guide like this one .
Computer Architecture
Computer Architecture—sometimes called “computer systems” or “computer organization”—is an important first look at computing below the surface of software. In our experience, it’s the most neglected area among self-taught software engineers.
Our favorite introductory book is Computer Systems: A Programmer's Perspective , and a typical introductory computer architecture course using the book would cover most of chapters 1-6.
We love CS:APP for the practical, programmer-oriented approach. While there's much more to computer architecture than what's covered in the book, it serves as a great starting point for those who'd like to understand computer systems primarily in order to write faster, more efficient and more reliable software .
For those who'd prefer both a gentler introduction to the topic and a balance of hardware and software concerns, we suggest The Elements of Computing Systems , also known as “Nand2Tetris”. This is an ambitious book attempting to give you a cohesive understanding of how everything in a computer works. Each chapter involves building a small piece of the overall system, from writing elementary logic gates in HDL, through a CPU and assembler, all the way to an application the size of a Tetris game.
We recommend reading through the first six chapters of the book and completing the associated projects. This will develop your understanding of the relationship between the architecture of the machine and the software that runs on it.
The first half of the book (and all of its projects), are available for free from the Nand2Tetris website . It’s also available as a Coursera course with accompanying videos .
In seeking simplicity and cohesiveness, Nand2Tetris trades off depth. In particular, two very important concepts in modern computer architectures are pipelining and memory hierarchy, but both are mostly absent from the text.
Once you feel comfortable with the content of Nand2Tetris, we suggest either returning to CS:APP, or considering Patterson and Hennessy’s Computer Organization and Design , an excellent and now classic text. Not every section in the book is essential; we suggest following Berkeley’s CS61C course “Great Ideas in Computer Architecture” for specific readings. The lecture notes and labs are available online, and past lectures are on the Internet Archive .
Hardware is the platform
Algorithms and Data Structures
We agree with decades of common wisdom that familiarity with common algorithms and data structures is one of the most empowering aspects of a computer science education. This is also a great place to train one’s general problem-solving abilities, which will pay off in every other area of study.
There are hundreds of books available, but our favorite is The Algorithm Design Manual by Steven Skiena. He clearly loves algorithmic problem solving and typically succeeds in fostering similar enthusiasm among his students and readers. In our opinion, the two more commonly suggested texts (CLRS and Sedgewick) tend to be a little too proof-heavy for those learning the material primarily to help with practical problem solving.
For those who prefer video lectures, Skiena generously provides his online . We also really like Tim Roughgarden’s course, available on Coursera and elsewhere . Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference. In fact, there are dozens of good alternatives, so if you happen to find another that you like, we encourage you to stick with it!
For practice, our preferred approach is for students to solve problems on Leetcode . These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
I have only one method that I recommend extensively—it’s called think before you write.
Mathematics for Computer Science
In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász . Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
For a more advanced treatment, we suggest Mathematics for Computer Science , the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available , and are our recommended video lectures for discrete math.
For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures .
If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
Operating Systems
Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their lack of clarity and general student unfriendliness.
Operating Systems: Three Easy Pieces is a good alternative that’s freely available online . We particularly like the structure and readability of the book, and feel that the exercises are worthwhile.
After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix , The Design and Implementation of the FreeBSD Operating System , and Mac OS X Internals . For Linux, we suggest Robert Love's fantastic Linux Kernel Development .
A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. One choice is xv6 , a port of Unix V6 to ANSI C and x86, maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
Computer Networking
Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
Our favorite book on the topic is Computer Networking: A Top-Down Approach . The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online .
For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course previously available via Stanford's MOOC platform Lagunita, but sadly now only available as unofficial playlists on Youtube.
You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
Given the circumstances, we encourage self-learners to generally avoid textbooks and start with recordings of CS 186 , Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
One paper particularly worth mentioning for new students is “ Architecture of a Database System ”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
Readings in Database Systems , better known as the databases “Red Book” , is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebraker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
If you're adamant about using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
Finally, data modeling is a neglected and poorly taught aspect of working with databases. Our suggested book on the topic is Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World .
Languages and Compilers
Most programmers learn languages, whereas most computer scientists learn about languages. This gives the computer scientist a distinct advantage over the programmer, even in the domain of programming! Their knowledge generalizes; they are able to understand the operation of a new language more deeply and quickly than those who have merely learned specific languages.
Our suggested introductory text is the excellent Crafting Interpreters by Bob Nystrom, available for free online. It's well organized, highly entertaining, and well suited to those whose primary goal is simply to better understand their languages and language tools. We suggest taking the time to work through the whole thing, attempting whichever of the "challenges" sustain your interest.
A more traditional recommendation is Compilers: Principles, Techniques & Tools , commonly called “the Dragon Book”. Unfortunately, it’s not designed for self-study, but rather for instructors to pick out 1-2 semesters worth of topics for their courses.
If you elect to use the Dragon Book, it’s almost essential that you cherry-pick the topics, ideally with the help of a mentor. In fact, our suggested way to utilize the Dragon Book, if you so choose, is as a supplementary reference for a video lecture series. Our recommended one is Alex Aiken’s, on edX .
Don’t be a boilerplate programmer. Instead, build tools for users and other programmers. Take historical note of textile and steel industries: do you want to build machines and tools, or do you want to operate those machines?
— Ras Bodik at the start of his compilers course
Distributed Systems
As computers have increased in number, they have also spread . Whereas businesses would previously purchase larger and larger mainframes, it’s typical now for even very small applications to run across multiple machines. Distributed systems is the study of how to reason about the trade-offs involved in doing so.
Our suggested book for self-study is Martin Kleppmann's Designing Data-Intensive Applications . Far better than a traditional textbook, DDIA is a highly readable book designed for practitioners, which somehow avoids sacrificing depth or rigor.
For those seeking a more traditional text, or who would prefer one that’s available for free online, we suggest Maarten van Steen and Andrew Tanenbaum’s Distributed Systems, 3rd Edition .
For those who prefer video, an excellent course with videos available online is MIT’s 6.824 , a graduate course taught by Robert Morris with readings available here .
No matter the choice of textbook or other secondary resources, study of distributed systems absolutely mandates reading papers. A good list is here , and we would highly encourage attending your local Papers We Love chapter.
Frequently asked questions
Who is the target audience for this guide.
We have in mind that you are a self-taught software engineer, bootcamp grad or precocious high school student, or a college student looking to supplement your formal education with some self-study. The question of when to embark upon this journey is an entirely personal one, but most people tend to benefit from having some professional experience before diving too deep into CS theory. For instance, we notice that students love learning about database systems if they have already worked with databases professionally, or about computer networking if they’ve worked on a web project or two.
What about AI/graphics/pet-topic-X?
We’ve tried to limit our list to computer science topics that we feel every practicing software engineer should know, irrespective of specialty or industry, but with a focus on systems. In our experience, these will be the highest ROI topics for the overwhelming majority of self-taught engineers and bootcamp grads, and provide a solid foundation for further study. Subsequently, you’ll be in a much better position to pick up textbooks or papers and learn the core concepts without much guidance. Here are our suggested starting points for a couple of common “electives”:
For artificial intelligence: do Berkeley’s intro to AI course by watching the videos and completing the excellent Pacman projects. As a textbook, use Russell and Norvig’s Artificial Intelligence: A Modern Approach .
For machine learning: do Andrew Ng’s Coursera course. Be patient, and make sure you understand the fundamentals before racing off to shiny new topics like deep learning.
For computer graphics: work through Berkeley’s CS 184 material, and use Computer Graphics: Principles and Practice as a textbook.
How strict is the suggested sequencing?
Realistically, all of these subjects have a significant amount of overlap, and refer to one another cyclically. Take for instance the relationship between discrete math and algorithms: learning math first would help you analyze and understand your algorithms in greater depth, but learning algorithms first would provide greater motivation and context for discrete math. Ideally, you’d revisit both of these topics many times throughout your career.
As such, our suggested sequencing is mostly there to help you just get started … if you have a compelling reason to prefer a different sequence, then go for it. The most significant “pre-requisites” in our opinion are: computer architecture before operating systems or databases, and networking and operating systems before distributed systems.
How does this compare to Open Source Society or freeCodeCamp curricula?
When this guide was first written in 2016, the OSS guide had too many subjects, suggested inferior resources for many of them, and provided no rationale or guidance around why or what aspects of particular courses are valuable. We strove to limit our list of courses to those which you really should know as a software engineer, irrespective of your specialty, and to help you understand why each course is included. In the subsequent years, the OSS guide has improved, but we still think that this one provides a clearer, more cohesive path.
freeCodeCamp is focused mostly on programming, not computer science. For why you might want to learn computer science, see above . If you are new to programming, we suggest prioritizing that, and returning to this guide in a year or two.
What about language X?
Learning a particular programming language is on a totally different plane to learning about an area of computer science — learning a language is much easier and much less valuable . If you already know a couple of languages, we strongly suggest simply following our guide and fitting language acquisition in the gaps, or leaving it for afterwards. If you’ve learned programming well (such as through Structure and Interpretation of Computer Programs ), and especially if you have learned compilers, it should take you little more than a weekend to learn the essentials of a new language, after which you can learn about the libraries/tooling/ecosystem on the job.
What about trendy technology X?
No single technology is important enough that learning to use it should be a core part of your education. On the other hand, it’s great that you’re excited to learn about that thing. The trick is to work backwards from the particular technology to the underlying field or concept, and learn that in depth before seeing how your trendy technology fits into the bigger picture.
Why are you still recommending SICP?
Look, just try it. Some people find SICP mind blowing, a characteristic shared by very few other books. If you don't like it, you can always try something else and perhaps return to SICP later.
Why are you still recommending the Dragon book?
The Dragon book is still the most complete single resource for compilers. It gets a bad rap, typically for overemphasizing certain topics that are less fashionable to cover in detail these days, such as parsing. The thing is, the book was never intended to be studied cover to cover, only to provide enough material for an instructor to put together a course. Similarly, a self-learner can choose their own adventure through the book, or better yet follow the suggestions that lecturers of public courses have made in their course outlines.
How can I get textbooks cheaply?
Many of the textbooks we suggest are freely available online, thanks to the generosity of their authors. For those that aren’t, we suggest buying used copies of older editions. As a general rule, if there has been more than a couple of editions of a textbook, it’s quite likely that an older edition is perfectly adequate. It’s certainly unlikely that the newest version is 10x better than an older one, even if that’s what the price difference is!
Who made this?
This guide was originally written by Oz Nova and Myles Byrne , with 2020 updates by Oz. It is based on our experience teaching foundational computer science to over 1,000 mostly self-taught engineers and bootcamp grads in small group settings in San Francisco and live online. Thank you to all of our students for your continued feedback on self-teaching resources.
For updates to this guide and general computer science news and resources, you may also like to sign up for Oz's newsletter:
Researchers in artificial intelligence (AI) seek to understand and develop machines with human-level intelligence by exploring the academic and real-world challenges surrounding AI.
At USC’s Department of Computer Science, we are pioneering breakthroughs in a full spectrum of topics related to AI, including machine learning, computer vision and image processing, human-robot interaction, speech and language analysis, information extraction and privacy-protection.
Our researchers are working in areas where artificial intelligence has been under study for decades—like language—and where the tools are just starting to make inroads—such as efforts to combat human trafficking, diagnose fetal alcohol syndrome, and prevent terrorist attacks using limited resources.
We understand that the long-term goal of building intelligent machines relies on collaboration across many fields. That’s why we also work closely with researchers across application domains, such as health care, social work and linguistics.
Affective Computing Group Automatic Coordination of Teams (ACT) Lab Center for Autonomy and AI Center on Knowledge Graphs Cognitive Architecture Cognitive Learning for Vision and Robotics Lab Collaboratory for Algorithmic Techniques and Artifical Intelligence (CATAI) Computational Linguistics Computational Neuroscience Lab (iLab) Computational Social Science Laboratory IRIS Computer Vision Lab (CV-Lab) Data, Interpretability, Language and Learning (DILL) Lab Data Science Lab Database Lab (Dblab) Haptics Robotics and Virtual ICT Natural Language Dialogue Group IDM Artificial Intelligence Laboratory Information Laboratory (InfoLab) Intelligence and Knowledge Discovery (INK) Research Lab Integrated Media Systems Center (IMSC) Interaction Lab Interactive and Collaborative Autonomous Robotic Systems (ICAROS) Lab Interactive Knowledge Capture Machine Learning and Data Mining Lab (Melody-Lab) Polymorphic Robotics Lab Privacy Research Lab Robotics and Autonomous Systems Center (RASC) Robotic Embedded Systems Lab Robotics Research Lab Semantic Information Research Speech Analysis and Interpretation Lab (SAIL) USC Brain project USC Center for Artificial Intelligence in Society USC Center for Autonomy and Artificial Intelligence
Aleksandra Korolova Andrew Gordon Aram Galstyan Barath Raghavan Bill Swartout Bistra Dilkina Craig Knoblock Cyrus Shahabi David Kempe David Pynadath David Traum Fred Morstatter Gale Lucas Gaurav Sukhatme Greg Ver Steeg Haipeng Luo Heather Culbertson Jay Pujara Jesse Thomason Jiapeng Zhang John Heidemann Jonathan Gratch Jonathan May Jose Luis Ambite Jyotirmoy Deshmukh Kallirroi Georgila Kristina Lerman Laurent Itti Leana Golubchik Maja Matarić Michael Zyda Mohammad Soleymani Muhammad Naveed Mukund Raghothaman Ning Wang Paul Rosenbloom (Emeritus) Pedro Szekely Ram Nevatia Robin Jia Satish Thittamaranahalli Saty Raghavachary Shaddin Dughmi Shang-Hua Teng Srivatsan Ravi Stefanos Nikolaidis Sven Koenig Swabha Swayamdipta Tatyana Ryutov Ulrich Neumann Victor Adamchik Weihang Wang Wei-Min Shen Wensheng Wu Xiang Ren Yan Liu Yolanda Gil
USC has a strong and active background in modern theoretical computer science, with research spanning a broad range of topics. Areas of particular interest include the theory of algorithms and optimization, graph theory, scalable algorithms, theory of machine learning, computational geometry, complex analysis, computational complexity, algorithmic number theory and cryptography.
Our researchers in this area are particularly motivated by bridging the gap between theory and practice, such as non-blockchain digital currencies, social network analysis, smoothed analysis, bilingual learning and post-quantum cryptography.
In addition, we have many strong connections to other fields, including economics and game theory, pure mathematics, applied mathematics and scientific computing, network science, sociology, as well as evolution of concepts, ideas and organisms.
Collaboratory for Advanced Computing and Simulations (CACS) Collaboratory for Algorithmic Techniques and Artifical Intelligence (CATAI) CS Theory Group
Aaron Cote Aiichiro Nakano Aleksandra Korolova Bistra Dilkina David Kempe Haipeng Luo Jeffrey Miller Jiapeng Zhang Jonathan May Len Adleman Ming-Deh A. Huang Satish Thittamaranahalli Shaddin Dughmi Shang-Hua Teng Shawn Shamsian Srivatsan Ravi Victor Adamchik
The demands on modern computing systems are increasingly complex, from small embedded systems in phones, laptops and wearables, to large-scale cloud computing and high-performance networks.
Systems, databases and software engineering research at USC aims to develop innovative hardware and software across the computing spectrum for existing technologies and to support future power-efficient, sustainable and secure computer systems.
From smart cities and intelligent transportation systems to personalized medicine, next-generation computer systems will require new, innovative and visionary approaches to hardware, wired and wireless communication.
At USC, researchers investigate various issues in the design and analysis of infrastructures for large networks. We focus on fundamental aspects of information acquisition, processing, security, privacy, storage, and communication.
Our research interests include crowd-sensing, program analysis, privacy-preserving systems, network design and management, software-defined networking, cloud computing, internet measurement, software verification and synthesis, advanced 5G wireless networks and data center design.
ANT (The Analysis of Network Traffic Lab) Autonomous Networks Research Group Center for Computer Systems Security Center for Systems and Software Engineering (CSSE) Center on Knowledge Graphs Collaboratory for Advanced Computing and Simulations (CACS) FPGA/Parallel Computing Group Information Laboratory / USC Integrated Media Systems Center (IMSC) Networked Systems Lab Quantitative Evaluation & Design Lab (QED ) Safe Autonomy and Intelligent Distributed Systems (SAIDS) Lab STEEL Security Research Lab The Postel Center USC Database Lab
Andrew Goodney Barath Raghavan Bill Cheng Bill Swartout Chao Wang Claire Bono Clifford Neuman Craig Knoblock Cyrus Shahabi Ellis Horowitz Ewa Deelman Fred Morstatter Jelena Mirkovic Jeffrey Miller John Heidemann Jose Luis Ambite Jyotirmoy Deshmukh Lars Lindemann Leana Golubchik Mark Redekopp Mukund Raghothaman Nenad Medvidovic Pedro Szekely Ramesh Govindan Saty Raghavachary Shahram Ghandeharizadeh Shawn Shamsian Srivatsan Ravi Tatyana Ryutov Weihang Wang Wensheng Wu William G.J. Halfond Xiang Ren
Computer Vision, Robotics, Graphics and HCI
At USC, the areas of computer vision, robotics and graphics represent the interface between computers and the rest of the world.
Robotics at USC focuses on developing effective, robust, human-centric, and scalable robotic systems. In this area, our expertise ranges from socially assistive robotic and novel haptics technology for virtual touch to complex human-robot interaction and multi-robot systems.
In computer vision and graphics, our researchers bridge physical and digital worlds with powerful recognition and analysis algorithms, as well as immersive technologies, such as augmented and virtual reality.
In computer vision, our strengths include object detection and recognition, face identification, activity recognition, video retrieval and integrating computer vision with natural language queries.
Our graphics researchers focus on interactive techniques and the simulation and synthesis of multimedia, 3D content and virtual worlds, including image-based modeling and reconstruction, shape analysis, 3D face processing, human digitization, efficient physics simulation, image and video-based rendering techniques.
Last but not least, USC Games, a collaboration between the Department of Computer Science and the School of Cinematics Arts, is recognized as one of North America’s top game design programs, according to Princeton Review.
Cognitive Learning for Vision and Robotics Lab Computer Graphics Group Computer Graphics, Animation and Simulation Laboratory Computer Graphics and Immersive Technologies (CGIT) Geometry and Graphics Group Haptics Robotics and Virtual Interaction (HaRVI) Lab Autonomous Robotic Systems (ICAROS) Lab Interaction Lab Polymorphic Robotics Lab Robotics and Autonomous Systems Center (RASC) Robotic Embedded Systems Lab Safe Autonomy and Intelligent Distributed Systems (SAIDS) Lab USC Geometric Capture Group Vision & Graphics Lab at USC ICT
Andrew Goodney David Pynadath David Traum Gale Lucas Gaurav Sukhatme Heather Culbertson Jernej Barbic Jesse Thomason Jonathan Gratch Kallirroi Georgila Lars Lindemann Laurent Itti Maja Mataric Mark Redekopp Michael Zyda Mohammad Soleymani Ning Wang Oded Stein Paul Rosenbloom Ram Nevatia Satish Thittamaranahalli Saty Raghavachary Stefanos Nikolaidis Sven Koenig Ulrich Neumann Wein-Min Shen Yolanda Gil
Published on August 2nd, 2019
Last updated on November 17th, 2023
Chair’s Welcome
Awards and Honors
CS@SC Institutes
Media Coverage
Newsletters and Fact Sheets
CS Industry Affiliate Program
Bekey Lecture
Driving Directions
Open Staff Positions
Open Faculty Positions
Centers and Institutes
Technical Reports
Annual Research Review
Undergraduate Research Experiences
Faculty Directory
Staff Directory
Getting Started with CS@USC
B.S. Program
M.S. Program
Ph.D. Program
Data Science Program
Graduate Certificate
Distance Education
K-12 Outreach
Academic Advisement
B.S. Application Information
M.S. Application Information
Ph.D. Application Information
Values of Inclusion
2020 Antiracism Task Force
2022 DEI Report
Research News
Department Life
Listed by Recipient
Listed by Category
Oral History of Cornell CS
CS 40th Anniversary Booklet
ABC Book for Computer Science at Cornell by David Gries
Books by Author
Books Chronologically
The 60's
The 70's
The 80's
The 90's
The 00's
The 2010's
Faculty Positions: Ithaca
Faculty Positions: New York City
Lecturer Position: Ithaca
Post-doc Position: Ithaca
Staff/Technical Positions
Ugrad Course Staff
Ithaca Info
Internal info
Graduation Information
Cornell Learning Machines Seminar
Student Colloquium
Fall 2024 Colloquium
Conway-Walker Lecture Series
Salton 2023 Lecture Series
Spring 2024 Artificial Intelligence Seminar
Spring 2024 Robotics Seminar
Spring 2024 Theory Seminar
Big Red Hacks
Cornell University - High School Programming Contests 2024
Game Design Initiative
CSMore: The Rising Sophomore Summer Program in Computer Science
Explore CS Research
ACSU Research Night
Cornell Junior Theorists' Workshop 2023
Researchers
Ph.D. Students
M.Eng. Students
M.S. Students
Ph.D. Alumni
M.S. Alumni
List of Courses
Course and Room Roster
CS Advanced Standing Exam
Architecture
Artificial Intelligence
Computational biology, database systems, human interaction, machine learning, natural language processing, programming languages, scientific computing, software engineering, systems and networking, theory of computing.
Contact Academic Advisor
Your First CS Course
Technical Electives
CS with Other Majors/Areas
Transfer Credits
CS Honors Program
CPT for International CS Undergrads
Graduation Requirements
Useful Forms
Becoming a CS Major
Requirements
Game Design Minor
Co-op Program
Cornell Bowers CIS Undergraduate Research Experience (BURE)
Independent Research (CS 4999)
Student Groups
UGrad Events
Undergraduate Learning Center
UGrad Course Staff Info
The Review Process
Early M.Eng Credit Approval
Financial Aid
Prerequisites
The Application Process
The Project
Pre-approved Electives
Degree Requirements
The Course Enrollment Process
Advising Tips
Entrepreneurship
Cornell Tech Programs
Professional Development
Contact MEng Office
Career Success
Applicant FAQ
Computer Science Graduate Office Hours
Exam Scheduling Guidelines
Graduate TA Handbook
MS Degree Checklist
MS Student Financial Support
Special Committee Selection
Diversity and Inclusion
Contact MS Office
Ph.D. Applicant FAQ
Graduate Housing
Non-Degree Application Guidelines
Ph. D. Visit Day
Business Card Policy
Cornell Tech
Curricular Practical Training
A & B Exam Scheduling Guidelines
Fellowship Opportunities
Field of Computer Science Ph.D. Student Handbook
Field A Exam Summary Form
Graduate School Forms
Instructor / TA Application
Ph.D. Requirements
Ph.D. Student Financial Support
Travel Funding Opportunities
Travel Reimbursement Guide
The Outside Minor Requirement
CS Graduate Minor
Outreach Opportunities
Parental Accommodation Policy
Special Masters
Student Spotlights
Contact PhD Office
Search form
You are here
The computing and information revolution is transforming society. Cornell Computer Science is a leader in this transformation, producing cutting-edge research in many important areas. The excellence of Cornell faculty and students, and their drive to discover and collaborate, ensure our leadership will continue to grow.
The contributions of Cornell Computer Science to research and education are widely recognized, as shown by two Turing Awards, two Von Neumann medals, two MacArthur "genius" awards, and dozens of NSF Career awards our faculty have received, among numerous other signs of success and influence.
To explore current computer science research at Cornell, follow links at the left or below.
Research Areas
Knowledge representation, machine learning, NLP and IR, reasoning, robotics, search, vision
Numerical analysis, computational geometry, physically based animation
Secure systems, secure network services, language-based security, mobile code, privacy, policies, verifiable systems
The software engineering group at Cornell is interested in all aspects of research for helping developers produce high quality software.
Operating systems, distributed computing, networking, and security
The theory of computing is the study of efficient computation, models of computational processes, and their limits.
Computer vision
Undergraduate Research
Many of our undergraduate students undertake research guided by a faculty member outside of coursework. This page gives a summary of how to go about finding an undergraduate research opportunity that is a good match for you. It was written in January 2020 by Don Porter, with suggestions from Diane Pozefsky, and most recently updated in October 2023.
Take classes!
The first, and hardest, part of finding a research topic is figuring out what you like. Often, investigating new ideas can be quite different than consuming them.
As a hyperbolic example, just because you like playing video games does not necessarily mean you will enjoy research in computer graphics, which requires considerably more math than dominating Fortnite.
Classes in the major, especially upper-division (400+ level) courses, can be a great opportunity to get a taste of a given topic. Similarly, this is a great opportunity to get to know a potential research advisor.
Of course, if it is your first year and you are eager to start research early, it is still an option to jump into research sooner, especially if you are either self-taught on a topic, or just very passionate about learning in your spare time. More notes on this issue are below.
Word to the wise: Be sure to show up for a few office hours with the instructor just to say “hi” and ask their opinion about interesting research topics and what is happening in the department. It’s best to come when the class is less busy, like earlier in the semester or not just before a major assignment or deadline.
Read up on faculty and research group webpages
Once you identify a general area or areas of interest, the next step would be to look at the department webpages ( such as our Research Areas page ) for faculty interested in a given area.
Although faculty webpages vary substantially in how clear they are to non-experts, they can give you a flavor of the type of work that the professor is into.
If a research group webpage looks appealing, the next step is to read a paper or two. You are unlikely to understand everything you read (don’t panic!), but it does give you a flavor of the work. If you can’t understand the introduction or conclusion, consider revisiting the material after you take an appropriate course in that area.
Also, pay attention to the way an idea is evaluated: is it proofs? Human subjects work? Measurement of a computer system? This is how you will likely spend a lot of your time if you join that group.
Word to the wise: Faculty project lists are often stale. Faculty often make webpages for a project around the time they are done with the publication and release the source code or other artifacts. So these pages can be useful to get a sense of the type of work, but the specific project you would likely work on is likely not yet written up.
Search the Office of Undergraduate Research (OUR) Database
The Office of Undergraduate Research has a database where faculty can post open research opportunities, including paid RA positions, volunteer opportunities, and course credit opportunities. This is not a complete listing, but it can give you some good leads, both within and outside of the department.
Sign up for the email list for announcements of new opportunities
There is a UNC CS mailing list to announce research and related opportunities, for those looking. You will need to subscribe, and can unsubscribe yourself.
The details are emailed periodically to CS majors. You may also email professor Porter for details if you are not on the majors list.
Speak to the OUR Liaison or student liaisons
Professor Porter is the current department OUR Liaison and can help answer questions about the process or recommend specific faculty you should consider speaking with. If you have a question about the process, something that is not covered on the page, or are just feeling nervous about the process, set up an appointment with professor Porter.
The best way to schedule an appointment with Professor Porter is using this page .
To see a list of undergraduate student researchers, visit this page .
Send a specific request to faculty member(s) for an appointment
Once you have narrowed the field to 2-3 faculty members you would like to work with, send each of them an email requesting an appointment at their convenience, expressing your interest in working with them, and asking if they have openings in their lab.
Word to the wise: Students often write emails that read as “generic” or “spam”, especially if they come from a student the professor doesn’t know. Thus, it is wise to make sure the email conveys that it is written:
By a UNC student. Believe it or not, professors get a significant volume of requests from students outside UNC to work on research. Send the message from your UNC email address and mention how far you are in the program, as well as any relevant background that you think will make you able to contribute to the work.
That it is not a “form” email with the professor’s name replaced. The best way to address this is to say something more specific about what you have learned from their page, or that attracted you to their work. If the email reads as if it could just as easily be addressed to professors Snoeyink, Mayer-Patel, or Pizer (by simply replacing the “Dear Prof. X” part), give it some more attention.
Other common issues and questions:
Not all faculty have funding to pay undergrad RAs, and even those that do have funding may wish to do a “trial period” (say 1 semester) to see if the work is a good fit before paying a student.
If you can afford to do the work without being paid, it may open up more opportunities.
That said, for many students, being paid may be a requirement. If this is the case for you, there is nothing wrong with this, and it is best to be up-front with a potential mentor about the issue. Note that if you qualify for Federal Work-Study, this may open up some opportunities to do research as your work-study assignment (mention this to the faculty member).
Send a few gentle reminders, say a week apart but at different times of day or days of the week, to “bump” the message back to the top of their inbox. Or go by office hours if advertised for their class, or just try to catch them with their door open/cracked.
Professors get a lot of email. Too much. We feel bad about being unresponsive or losing track of emails, but it happens. Be patient, but also don’t be afraid to send reminders.
Yes! The great thing about working with first or second year students is that you have longer to amortize the cost of climbing the learning curve.
This is especially true if there is a topic where you are self-taught, have prior experience, or are just really passionate to catch up out of band. In some labs, you may also be able to help initially with less technical contributions, such as interviewing subjects or running experiments, while you learn the deeper technical material.
The best thing to do is follow similar steps as above, and definitely reach out to the OUR liaison for guidance.
When you approach a professor, make a point to explain what you have done to prepare yourself for research in their group, and ask if there are other things you can do to prepare yourself.
Get the Reddit app
r/AskReddit is the place to ask and answer thought-provoking questions.
Is a computer science degree worth it in 2024? Why or why not?
Advantages Of Computer Science : r/Students_AcademicHelp
online phd computer science reddit
online phd computer science reddit
125 Best Computer Science Research Topics
Get Knowledge from Best Ever Data Science Discussions on Reddit
VIDEO
The Most Terrifying Type of Entity
R/askscience
Fidelity's Vijay Saraswat: Computer Science 2.0
Research Without Programming Theoretical Research in Computer Science
Computer Science Topics Tier List
Is a Computer Science Degree STILL Worth It? 🧐
COMMENTS
What exactly *is* computer science research? : r/computerscience
Computer Science research in general usually does involve a great deal of mathematics, whether as foundational principals or as tools. This could be formal proofs, group theory, number theory, and computers are the mechanism by which these principals are applied. Mathematics is an iterative process, someone devises a new mathematical technique ...
What are some interesting computer science research areas ...
I would like to get involved in computer science research soon, and would like some advice/perspective in choosing an area to specialize in. I have two criteria for a prospective research area: The problems are challenging and interesting. The problems being solved have a tangible impact on people, i.e., they address a real human need.
What is it like to do research in computer science?
Always something to learn and learning is often something you're expected to do, instead of something done in your free time. Many times the community for your research area is small, you get to be friends with people around the world. Finding bleeding edge, state of the art problem, sometimes almost pie-in-the-sky it's so cool.
CSRankings: Computer Science Rankings
This ranking is designed to identify institutions and faculty actively engaged in research across a number of areas of computer science, based on the number of publications by faculty that have appeared at the most selective conferences in each area of computer science (see the FAQ for more details).. We gratefully acknowledge the generous support of our sponsors, including Stony Brook University.
How to do research in Computer Science
But it should be a review of first hand (original) works, and not a review of Reviews. vi) Write a synopsis, if you are to do a Ph.D. For just research, you go ahead with your studying papers. vii ...
500+ Computer Science Research Topics
Computer Science is a constantly evolving field that has transformed the world we live in today. With new technologies emerging every day, there are countless research opportunities in this field. Whether you are interested in artificial intelligence, machine learning, cybersecurity, data analytics, or computer networks, there are endless possibilities to explore.
NASA, IBM Develop INDUS Large Language Models for Advanced Science Research
INDUS incorporates specialized LLMs for Earth science, biological and physical sciences, heliophysics, planetary sciences, and astrophysics. These models are trained on curated scientific data to ...
How scientists are making the most of Reddit
These studies spanned all sorts of disciplines — from computer science to medicine to social science. One reason that Reddit is ripe for research is that there are few bureaucratic hurdles to ...
Computer Science
A complete ANN consists of at least an input layer, an output layer, and optionally, one or multiple hidden layers, all of which are ordered. A layer is an abstract structure that consists of more elementary abstract structures called neurons — a layer may have a single or multiple neurons. Each neuron has two associated numerical values: a ...
Research at Yale CS
At Yale Computer Science, our faculty and students are at the forefront of innovation and discoveries. We conduct ground-breaking research covering a full range of areas in theory, systems, and applications. Our department is currently in the middle of substantial growth. Data and Computer Science is listed as one of the top five Science ...
14 Pros and 13 Cons of Being a Computer Scientist
The following are some pros of being a computer scientist: 1. Advancement. The field of computer science offers advanced specializations within a growing technological industry. This provides computer science professional s with a variety of advancement opportunities for specialized or management positions. These opportunities for growth can ...
Academia research vs. industry research (computer science)
3. As a researcher in industry, let me first emphasize to you that "industry" is a much broader set of organizations and varies a lot more than most people realize. Thus, the answer to your question may depend quite a bit on the specifics of the company that you are at.
Undergraduate Research Opportunities
Siebel School ofComputing and Data Science. Siebel School of. Computing and Data Science. X. This new school will provide an even greater depth of resources to our top-5 ranked computer science program and a planned new building, made possible through a generous $50 million gift from Illinois alumnus Thomas M. Siebel.
Computer Science
2019. Edge Cloud for AR/VR. Predictive Visual Understanding. Multimodal Brain Computer Interface for Human-Robot Interaction.
Research Internship Program
Research Internship Program. The CS Research Internship Program at Yale provides applicants with a unique opportunity to conduct cutting-edge research with leading researchers in the field. Interns will get a chance to not only grow their knowledge in their area of interest, but also obtain hands-on experience working on projects that have real ...
Teach Yourself Computer Science
It is based on our experience teaching foundational computer science to over 1,000 mostly self-taught engineers and bootcamp grads in small group settings in San Francisco and live online. Thank you to all of our students for your continued feedback on self-teaching resources.
Recently graduated, my advice to Computer Science majors : r ...
CSCareerQuestions is a community for those who are in the process of entering or are already part of the computer science field. Our goal is to help navigate and share challenges of the industry and strategies to be successful . Recently graduated, my advice to Computer Science majors. This sub-reddit has helped me tremendously when it came to ...
Research Areas and Labs
About. USC has a strong and active background in modern theoretical computer science, with research spanning a broad range of topics. Areas of particular interest include the theory of algorithms and optimization, graph theory, scalable algorithms, theory of machine learning, computational geometry, complex analysis, computational complexity, algorithmic number theory and cryptography.
Research
Research. The computing and information revolution is transforming society. Cornell Computer Science is a leader in this transformation, producing cutting-edge research in many important areas. The excellence of Cornell faculty and students, and their drive to discover and collaborate, ensure our leadership will continue to grow.
Is it even worth majoring in Computer Science? Seems like it ...
Computer science degrees have the highest number of students dropping out, according to the latest figures from the Higher Education Statistics Agency (Hesa). Computer sciences and business and administrative studies are among the degree subjects with the highest drop-out rates; with around nine per cent of students dropping out by their second ...
Undergraduate Research
Undergraduate Research. Many of our undergraduate students undertake research guided by a faculty member outside of coursework. This page gives a summary of how to go about finding an undergraduate research opportunity that is a good match for you. It was written in January 2020 by Don Porter, with suggestions from Diane Pozefsky, and most ...
Computer Science
If you have a problem which classes/curses to take, what topics to review, which major to choose, what career path to pursue, what certifications to get etc. then ask on better suited subreddit. This subreddit is dedicated to the discussion about academics of Computer Science, not the career focused aspects of CS.
Is a Computer Science Degree Worth It in 2024? ROI, Cost ...
An online bachelor's in computer science program can cost approximately $360-$495 per credit, with tuition varying widely. When considering the return on investment (ROI) to figure out why a computer science degree is worth it, it's important to take into account the cost of the degree itself. Below are some of the factors that affect the ...
Is a computer science degree worth it in 2024? Why or why not ...
Not true. only 32.8 percent of Americans have a bachelor's degree. If every single one of them had a computer science degree, that means only 32.8 percent of the whole country has a computer science degree. But realistically speaking, not everybody majors in computer science, so it would be a lot less than 32 percent.
IMAGES
VIDEO
COMMENTS
Computer Science research in general usually does involve a great deal of mathematics, whether as foundational principals or as tools. This could be formal proofs, group theory, number theory, and computers are the mechanism by which these principals are applied. Mathematics is an iterative process, someone devises a new mathematical technique ...
I would like to get involved in computer science research soon, and would like some advice/perspective in choosing an area to specialize in. I have two criteria for a prospective research area: The problems are challenging and interesting. The problems being solved have a tangible impact on people, i.e., they address a real human need.
Always something to learn and learning is often something you're expected to do, instead of something done in your free time. Many times the community for your research area is small, you get to be friends with people around the world. Finding bleeding edge, state of the art problem, sometimes almost pie-in-the-sky it's so cool.
This ranking is designed to identify institutions and faculty actively engaged in research across a number of areas of computer science, based on the number of publications by faculty that have appeared at the most selective conferences in each area of computer science (see the FAQ for more details).. We gratefully acknowledge the generous support of our sponsors, including Stony Brook University.
But it should be a review of first hand (original) works, and not a review of Reviews. vi) Write a synopsis, if you are to do a Ph.D. For just research, you go ahead with your studying papers. vii ...
Computer Science is a constantly evolving field that has transformed the world we live in today. With new technologies emerging every day, there are countless research opportunities in this field. Whether you are interested in artificial intelligence, machine learning, cybersecurity, data analytics, or computer networks, there are endless possibilities to explore.
INDUS incorporates specialized LLMs for Earth science, biological and physical sciences, heliophysics, planetary sciences, and astrophysics. These models are trained on curated scientific data to ...
These studies spanned all sorts of disciplines — from computer science to medicine to social science. One reason that Reddit is ripe for research is that there are few bureaucratic hurdles to ...
A complete ANN consists of at least an input layer, an output layer, and optionally, one or multiple hidden layers, all of which are ordered. A layer is an abstract structure that consists of more elementary abstract structures called neurons — a layer may have a single or multiple neurons. Each neuron has two associated numerical values: a ...
At Yale Computer Science, our faculty and students are at the forefront of innovation and discoveries. We conduct ground-breaking research covering a full range of areas in theory, systems, and applications. Our department is currently in the middle of substantial growth. Data and Computer Science is listed as one of the top five Science ...
The following are some pros of being a computer scientist: 1. Advancement. The field of computer science offers advanced specializations within a growing technological industry. This provides computer science professional s with a variety of advancement opportunities for specialized or management positions. These opportunities for growth can ...
3. As a researcher in industry, let me first emphasize to you that "industry" is a much broader set of organizations and varies a lot more than most people realize. Thus, the answer to your question may depend quite a bit on the specifics of the company that you are at.
Siebel School ofComputing and Data Science. Siebel School of. Computing and Data Science. X. This new school will provide an even greater depth of resources to our top-5 ranked computer science program and a planned new building, made possible through a generous $50 million gift from Illinois alumnus Thomas M. Siebel.
2019. Edge Cloud for AR/VR. Predictive Visual Understanding. Multimodal Brain Computer Interface for Human-Robot Interaction.
Research Internship Program. The CS Research Internship Program at Yale provides applicants with a unique opportunity to conduct cutting-edge research with leading researchers in the field. Interns will get a chance to not only grow their knowledge in their area of interest, but also obtain hands-on experience working on projects that have real ...
It is based on our experience teaching foundational computer science to over 1,000 mostly self-taught engineers and bootcamp grads in small group settings in San Francisco and live online. Thank you to all of our students for your continued feedback on self-teaching resources.
CSCareerQuestions is a community for those who are in the process of entering or are already part of the computer science field. Our goal is to help navigate and share challenges of the industry and strategies to be successful . Recently graduated, my advice to Computer Science majors. This sub-reddit has helped me tremendously when it came to ...
About. USC has a strong and active background in modern theoretical computer science, with research spanning a broad range of topics. Areas of particular interest include the theory of algorithms and optimization, graph theory, scalable algorithms, theory of machine learning, computational geometry, complex analysis, computational complexity, algorithmic number theory and cryptography.
Research. The computing and information revolution is transforming society. Cornell Computer Science is a leader in this transformation, producing cutting-edge research in many important areas. The excellence of Cornell faculty and students, and their drive to discover and collaborate, ensure our leadership will continue to grow.
Computer science degrees have the highest number of students dropping out, according to the latest figures from the Higher Education Statistics Agency (Hesa). Computer sciences and business and administrative studies are among the degree subjects with the highest drop-out rates; with around nine per cent of students dropping out by their second ...
Undergraduate Research. Many of our undergraduate students undertake research guided by a faculty member outside of coursework. This page gives a summary of how to go about finding an undergraduate research opportunity that is a good match for you. It was written in January 2020 by Don Porter, with suggestions from Diane Pozefsky, and most ...
If you have a problem which classes/curses to take, what topics to review, which major to choose, what career path to pursue, what certifications to get etc. then ask on better suited subreddit. This subreddit is dedicated to the discussion about academics of Computer Science, not the career focused aspects of CS.
An online bachelor's in computer science program can cost approximately $360-$495 per credit, with tuition varying widely. When considering the return on investment (ROI) to figure out why a computer science degree is worth it, it's important to take into account the cost of the degree itself. Below are some of the factors that affect the ...
Not true. only 32.8 percent of Americans have a bachelor's degree. If every single one of them had a computer science degree, that means only 32.8 percent of the whole country has a computer science degree. But realistically speaking, not everybody majors in computer science, so it would be a lot less than 32 percent.