Every major computer science degree includes minor and major projects to be done in the last semesters. These projects often carry a huge marks weightage and it often works as the differentiator between you and others. Good and interesting computer science projects must include the implementation of the concepts that you have learned in the course. For example, concept of databases, data structures, GUI design, etc.
Viva and reports are an important part of your project and submitting a well detailed project is always beneficial. The problem that many face is how to combine the concepts that they learned to build a project that has some practical applications. Here, I am mentioning three interesting computer science projects, the tools that you need and other resources to help you. So let’s begin.
Project 1: A smartphone app to show weather
A smartphone app is always an interesting thing, because your supervisors will be able to install it in their devices and see it working. I have chosen an app to show the weather specifically because it will introduce you to the concept of APIs as you will have to integrate an API in your app to retrieve weather information.
Now it’s up to you to decide the platform. This post might help you in deciding. But I would suggest to go with Android here for the following reasons:
- More people use android, and there is a high possibility that your supervisor uses an android device. So, it will be easy to install.
- Android apps can be distributed by simply sharing the apk or the app bundle unlike iOS where a developer account is a must.
- Android’s fragmentation sometimes become a blessing in disguise, as you will deal with more sizes of screens and therefore learn to optimize your app for different sizes and practically see how your app looks on different devices with varying screen sizes and resolutions.
Now if you are thinking how to start android development, you can read this post on android development.
You have to master the basic concepts of android development like activities, fragments, intents, layouts, manifest, adapters, etc. The best and most effective source to learn these concepts is the official Android documentation that Google provides. You can visit android documentation by clicking here.
Next step is to use a weather API for retrieve weather information. Various organizations provide APIs to developers. The organizations charge a fee for letting you use their API. The fee can be one time or recurring based on number of times the data is accessed, and it totally depends on the organization.
You can simply google search to discover various APIs available and choose the one you like. The next step is the integration of the API. There are various tutorials online which teaches how to integrate an API in your android app. Click here to view one such tutorial from androidauthority.com.
Project 2: A student management system
If we talk about management systems, there are many of them. There are college management system, hospital management system, hotel management system, etc. But as this a college project, a student management system seems perfect. Now, there are basically two ways of implementing this project:
- Making a native desktop application that needs to be installed on a device.
- Making a web application which can be accessed via a web browser.
Making a native desktop application
Desktop applications are meant to be downloaded and installed on the computer. I will suggest these two ways to develop desktop applications.
- If you are developing specifically for the Windows platform, then the best way is to install Visual Studio Community Edition (which is free). It contains all the necessary APIs and plugins required to develop modern windows desktop application. You can read this documentation for learning how to get started.
- If you want to develop cross-platform app which runs across various operating systems, then you can make Java Swing applications. They run across various platforms, provided the device on which it runs has the Java Runtime Environment (JRE). You can also pack your application with the JRE to be on the safe side.
Making a web application
A web application is often convenient as you don’t need to handle installation and platform related issues. Just build it once, and people can access it from any device.
Web application can be made using many different type of technologies. For example, MERN, MEAN, etc. It depends on you which tools you want to use to make it. There are efficient frameworks for various languages. PHP has Laravel, Python has Django, Java has Spring, etc.
In the front end, you will need to build various UIs to take inputs, show output, log in and log out user, etc. Various input types will be used such as text, password, button, radio, email, etc. You need to be familiar with CSS to make good looking screens. You can learn CSS from W3schools.
Backend deals with storage and processing of data. In this project, you need to store student’s information in a database. You can choose between a relational database or a document based database. If you choose relational database, then I will suggest to go with MySQL. And if you choose a document based database, then I will suggest MongoDB. You can read how to install MySQL.
If you go with the relational model, then you will basically be performing the CRUD operations using queries. Also, you may need to perform calculations as and where required.
Project 3: AI/AR/VR based software
Artificial Intelligence, Augmented Reality and Virtual Reality is the trend now a days, and each and every major tech company is investing in developing tools to best utilize their capabilities. It is true that these are not easy areas and it requires high technical knowledge to develop software that utilizes these concepts, but it is possible to make some small scale projects on these topics.
These are some of the things you can make:
- A chatbot
- Face recognition system
- Image analysis and recognition system
- Data analysis and prediction software
- Object projection app using Augmented Reality.
Now, to develop these, you need to be familiar with technologies which help accomplish these tasks. Some of these are python, numpy, tensorflow, ARCore, etc.
To build AI software, python is a basic element that you must learn. The reason why python is the preferred language for this is because of the availability of huge number of super useful plugins which can be used for scientific computing, data representation, data analysis, etc. I am mentioning some very useful python libraries which will help you in making projects related to AI and Machine Learning.
You can see this sample face detection project in python implemented using OpenCV to get an idea.
Another example is using the library called Chatterbot to make a chatbot. You can read this helpful tutorial from javatpoint.com.
Learn how to make Augmented Reality App using ARCore.
Although there are many projects that you can make, I have just suggested three of them. Of course, after gaining knowledge and developing the required skills, you can develop anything that you wish. The best thing is that most skills can be learned online, and most useful tools have some very good documentation and excellent developer community. You can always use the resources to learn various technologies.
Hope this post helped you! Best of luck for your project.