Welcome to the Department of Computer Science


Create challenging and cutting edge computing career possibilities by earning a Bachelor of Science in Computer Science or Software Engineering.

Montana Tech professors are experienced in the industry and have broad academic interests. Low student-faculty ratio allows close interaction with these professors on real-world projects. Enjoy easy access to lab computers and state of the art equipment and development platforms (Sun Fire Server, NAO H25 humanoid robot programming, Android app development, iPad app development, and much more).

Students graduate with practical experience designing, building, testing and maintaining software systems. Graduates are in high demand. The department has maintained 100% placement in well paying positions for over 10 years. Check out the rest of our website to learn more about these ABET accredited programs.

Will Augustine Interns at the Montana Department of Transportation

Over the summer of 2021, Will worked at Montana Department of Transportation in Helena, Montana as an IT Help Desk Intern. His main responsibilities were to assist employees at MDT with any technological assistance they may need. This ranged from helping them use how to use a new application to swapping out memory or hard drives on their computers. Their focus, due to COVID-19, was to give everyone that had a tower/PC a laptop so that if they had to quarantine or work out of the office, it was much easier to do so. This process involved interacting with those employees and discussing what programs they used and did not use and then pushing installations to their new laptop so that when they got their laptop, everything they wanted was on there and it was ready to use. Will was also a beta tester for multiple things, including new conference room equipment and a new platform we were thinking of switching over to. He also had the privilege of working with the dev/ops department, when reviewing the back-end development side of things. His favorite parts were the people he worked with and the opportunity to continuously learn and improve. When Will was not assisting customers, he was coding small things on the side so that he could continue to grow as a want-to-be software developer.

Zachary Snyder Internship at Anderson ZurMuehlen

Zachary worked for Anderson ZurMuehlen Tech Services for the Spring 2021 semester as an IT Intern. In his words: “Working IT was a great way to experience what it’s like to work in this field. Along with working on special projects such as installing servers, I was able to practice creative solutions on computer problems. The most useful resource that contributed to my learning was the friendly people who I worked with that were always willing to walk me through something when I got stuck. There were times at the beginning where I felt overwhelmed but by the 2nd month, I really felt comfortable with any job. Overall, it was a great first experience in the field and would recommend it to anyone looking for their first internship.”

Jacob Vesco Interns at NorthWestern Energy

Jacob has had two internships with NorthWestern Energy (NWE), first as an applications technologist and second as an applications dev ops technologist. The first internship was stationed at NWE’s main office in Butte, MT during the summer and fall semester of 2019. He was involved in a variety of different types of projects. His biggest project had him develop an online safety reporter in the form of a website for use internally by NWE employees. Another note-worthy project involved transferring data from CSV files to an SQL database, then using SSRS to generate reports from the data. Jacob’s second internship, which was during the summer and fall semester of 2020, had him working on robotic process automation (RPA). Throughout the entire internship, he developed a single large bot for the credit group of NWE all while working remotely from home. The bot is meant to automate a daily, repetitive process which the credit group spends over 800 hours a year working on. Jacob’s time with NWE has provided him with valuable memories, friends, and experience that will serve him for the rest of my career.

Eli Hodges Interns at OPeNDAP

During the summer and fall of 2019, Eli interned at OPeNDAP locally in Butte. His duties centered around the analysis of Google Cloud functions. The company was unsure whether they wanted to pursue serverless computing via Google or Amazon so Eli was brought on to help inform their decision making. This was an internship that valued independence and self-direction. Eli had frequent meetings with the team, specific team members, and his direct supervisor to ensure the information he was generating was valuable. Eli was given complete open-ended authority as to how to approach each situation. As a result this internship was very creative.

Above everything else this internship taught him the value of communication and flexibility. The faster Eli was able to show his work to his supervisor, the more valuable his work ended up being.

Marcus Frisbee Serves Internship at Montana Tech for Respiratory Monitoring

Marcus is a senior in the software engineering and computer science program. Due to COVID restrictions, Marcus completed his internship virtually. During the summer of 2020, Marcus Frisbee interned with Phillip Curtis and Bryce Hill, made possible by a SURF Grant.  Marcus was tasked with engineering software for a respiratory monitor that is being developed and compared to medically relevant standards for the detection of apnea and its source. This monitor is being developed to be less intrusive than the current relevant standards. In order to verify data sets, a real time data logger and display was developed. The real time display allows for data from different sensors to be observed in real time in order to confirm that the data collected by the logger is meaningful.  

Marcus used a C++ library called QT to design an interface for a Raspberry Pi 4. The interface on the Pi will allow the user to control the display of the data on three different graphs. This allows for flexibility in viewing the real time data and allows for the user to compare different data sets in real time. The data recorded can then be checked for collection errors in real time and fixed if needed.