Checkout our website for prospective students.

Dr. Wang Receives NSF Award for Design Reconstruction Algorithm

Dr. Song Wang has received a research grant award from the National Science Foundation for his project entitled "Algorithm Development for Reconstruction of Design Elements". This is an interdisciplinary study between archaeology and computer science to develop and disseminate a program that can identify the full artistic design from fragmented cultural heritage objects. Specifically, it will develop the algorithm to identify the designs of the carved wooden paddles of the Southeastern Woodlands from unearthed pottery sherds. Research also described in USC News: Fingerprints to the past. Image from
  • Jun Zhou, Haozhou Yu, Karen Smith, Colin Wilder, Hongkai Yu, Song Wang. Identifying designs from incomplete, fragmented cultural heritage objects by curve-pattern matching J. Electron. Imaging. 26(1), 011022 (Jan 05, 2017). doi:10.1117/1.JEI.26.1.011022.
  • Dr. Valtorta Receives Grant Award for Probabilistic Reasoning

    Dr. Marco Valtorta has received an award from the Intelligence Advanced Research Projects Activity (IARPA) to work on the Co-Arg: Cogent Argumentation System with Crowd Elicitation project, lead by George Mason University. This project aims to improve the quality of intelligence analysis reports. Dr. Valtorta's work will develop a probabilistic reasoning component to complement the Wigmorean argument structures used as the main representation in the Co-Arg project. Argument structures will be translated into Bayesian networks, thus uncovering subtleties and complexities, such as evidence-induced dependencies, synergistic effects, and antagonistic effects, which will be resolved by analysts or via crowdsourcing.

    Dr. Terejanu Receives Grant Award from the NIDA/USDA

    Dr. Gabriel Terejanu has received a research award from the National Institute of Food and Agriculture (NIFA)/USDA for his project, "TOXIMAP: Computational Framework for Prediction of Geographical and Temporal Incidence of Mycotoxins in US Crop Fields". This project will develop a general predictive modeling framework for calculating aflatoxin occurrence in US crop fields before harvest, and package this knowledge in a user-friendly predictive web/mobile interface for generating nation-wide and real-time aflatoxin hazard maps. This project has the potential to change certain behaviors in crop management to improve food safety.

    We are a Research Experiences for Undergraduates Site in Computational Robotics

    Dr. Jason O’Kane and Dr. Jenay Beer have received a grant from the National Science Foundation to help create a Research Experiences for Undergraduates site for Applied Computational Robotics. This work will have significant impact by involving talented undergraduate students from around the southeast in robotics research projects here at USC. This experience will encourage these students to pursue graduate studies and research-oriented industry positions. We are proud of your efforts. Congratulations! Visit to learn more and apply to this program.

    Outstanding Senior Awards

    Each year the Faculty of the Department of Computer Science and Engineering (CSE) award four Outstanding Senior Awards. This process is never easy given the many excellent and accomplished students in our program. After much deliberation, we have decided that the 2017 Computer Science and Engineering Outstanding Senior Awards go to:
    • Computer Engineering Outstanding Senior Award: Conor Campbell
    • Computer Engineering SCSPE Award: Rickey Ward
    • Computer Science Outstanding Senior Awards: Austin Pahl and Victor Reynolds
    • Computer Information Systems Outstanding Senior Award: Caitlin Brock
    All awardees will be honored at the USC Awards Day ceremony. In addition, Rickey will be honored at a special awards banquet of the South Carolina Society of Professional Engineers.

    Dr. Gregory Gay Receives NSF Grant for Software Testing

    Dr. Gregory Gay has received an NSF Research award for his project on Understanding The Role of Software Test Adequacy Criteria in Search-Based Test Generation. This work aims to help improve automated software testing in industry. Abstract Software testing ensures that software is robust and reliable. As testers cannot know what faults exist apriori, dozens of metrics---ranging from the measurement of structural coverage to the detection of synthetic faults---have been proposed to judge test case adequacy. In theory, if such metrics are fulfilled, tests should be adequate at detecting faults. To alleviate the high cost of testing, optimization algorithms can be used to automatically generate test suites. These adequacy metrics are well-suited for guiding automated test creation. However, there is no adequacy metric known to universally correspond to "effective fault detection." Testers are left with a bewildering number of testing options, and there is little guidance on when to use one criterion over another. These metrics are a solid starting point for test case generation. Many faults cannot be detected until the code has been executed. However, merely executing code does not ensure adequate testing. How code is executed is important. It is clear that testers do not yet understand which adequacy metrics actually correspond to a high probability of fault detection, or under what situations these metrics can be applied. Therefore, it is clear that improving automated test generation requires gaining a better understanding of the circumstances where particular metrics are effective, isolating the features of such metrics that correlate to fault detection in such circumstances, and establishing and evaluating guidelines for the use and combination of metrics - perhaps tied to particular system types or domains - that will result in real-world fault detection. Large-scale empirical investigations will be performed into the nature of the relationship between adequacy criteria and the probability of fault detection in order to understand the efficacy and applicability of the criteria that are used to guide test creation. This work will have broader impacts on industrial practices, software engineering education, and - through dissemination to and collaborations with industrial partners and regulatory agencies - public safety and security.

    Rukia Brooks Chosen as IGDA Scholar

    We are proud to announce that Rukia Brooks (CS major) was chosen as an International Game Developers Association (IGDA) Scholar for 2017. As a Scholar she will receive an all-access pass to the Game Developers Conference, a mentor for professional development, studio tours, and other benefits. The Game Developers Conference is a professional development conference for those involved in the games industry. There are talks ranging from the academic study of games in terms of Human Computer Interaction, Sociology, and Psychology. There are talks in fields such as programming and computer science.

    Student Report from Black Women in Computing Conference

    The inaugural Black Women in Computing Conference (BWIC) was held on January 6-8, 2017 at Howard University in Washington D.C. The theme of the conference was, “Honoring our past, celebrating our present, and looking into our future.” BWIC provided a venue to discuss, advance, and celebrate the intersectionality of race and gender in computing. The conference committee had the goals of catalyzing community between black women in computing, nurturing personal and professional growth, and discussing salient themes facing the group in society. Speakers ranged from North Carolina State’s Dr. Fay Cobb Payton, to White House representative Lisa Gelobter, to image activist Michaela angela Davis. Karina Liles, a PhD candidate in computer science, and De’Aira Bryant, an undergraduate senior in computer science, attended the conference on behalf of the University of South Carolina’s College of Engineering and Computing. Liles is a graduate student advisor for the Minorities in Computing at USC student group and Bryant is the current president of the group.
    "We discussed pivotal issues such as intersectionality, tokenism, and imposter syndrome—many of which I didn’t realize were issues facing the community, but rather just the way life worked for black women in computing. The open and enlightening conversations are ones that I still reflect upon today. For example, I learned that self-care and wellness are just as important as work deadlines. It’s not always worth, “getting degreed to get diabetes and die.

    The community of women were extremely honest and inspiring in their experiences. I marveled at the presence of women who looked like me that had taken similar life paths—and had been successful. I am extremely grateful to the department for allowing me to experience this historical conference and gain so much from it. As I look to complete my final semester of undergrad at USC, I could not have asked for a better way to start it."

    –De’Aira Bryant

    Multiple Full-Time Instructor Positions

    The Department of Computer Science and Engineering at the University of South Carolina is seeking applications for multiple, full-time Instructor positions beginning immediately (or Summer/Fall 2017).  Instructors will be required to teach courses in computer science and engineering, which may include computer programming, data structures and algorithms, computer architecture, databases, operating systems, networks, computer security, and software engineering. Duties will also include participation in student engagement activities such as student advising and recruitment.  The position requires a Master’s or PhD degree in Computer Science, Computer Engineering, Computer Information Systems, or a related field. Relevant industrial experience or teaching experience is preferred. Application review begins January 15, 2017 and remains open until the positions are filled. Interested applicants should send a single PDF file that includes: (1) cover letter, (2) resume, (3) concise description of teaching interests, and (4) three letters of reference to The Department of Computer Science and Engineering in the College of Engineering and Computing offers B.S. degrees in Computer Science, Computer Information Systems, and Computer Engineering, M.S. and Ph.D. degrees in Computer Science and Computer Engineering, a M.S. degree in Software Engineering, and a Graduate Certificate in Cyber Security Studies. The Department has 21 full-time faculty members, an undergraduate enrollment of 872 students, and a graduate enrollment of 175 students. The University of South Carolina main campus in Columbia, with a diverse student population of 33,772 students, is the state’s flagship university. It was founded in 1801, and is one of the nation’s oldest and most comprehensive public universities. In 2016, ranked Columbia, the seat of South Carolina government, as the third best college town. The temperate climate, the family friendly and resurgent city, the proximity to beaches and mountains, and the traditions and beauty of an historic university with forward-leaning benefits and practices, provide for a high quality of life. The University of South Carolina is an Affirmative Action/Equal Opportunity Employer. Minorities and women are especially encouraged to apply. The University of South Carolina does not discriminate in educational or employment opportunities or decisions for qualified persons on the basis of race, color, religion, sex, national origin, age, disability, sexual orientation, or veteran status.

    ACM Student Teams Win ACM Programming Contest

    We are happy to announce that two CSE ACM student teams placed first and second at the College of Charleston location for the International Collegiate Programming Contest (ICPC) southeast regional competition. In the photo above, from left to right: Viraj Patel, Thomas Panetti, Jeremy Day, Tori McQuinn, Eduardo Romero, Noel Raley and Dylan Madisetti.

    SC Cyber: Can't Hack This

    USC News has published an article, Can't hack this, describing SC Cyber, a statewide cybersecurity initiative led by USC, funded by a $1.5 million grant from the state Department of Commerce and announced by Gov. Nikki Haley in February.
    Csilla Farkas, associate professor in computer science and engineering, has long understood the need for cybersecurity to protect against such attacks. Hired in 2000, she has led the development of cybersecurity education at the University of South Carolina and serves as director of the university’s Center for Information Assurance Engineering. The center is a National Center of Academic Excellence in Information Assurance and Cyber Defense Education (an achievement first earned in 2010 and bestowed jointly by the National Security Agency and the Department of Homeland Security); it earned the same designation for research in 2014.

    Grant to Study to Help Improve Survival Rates of Lung Cancer Patients

    Dr. Jenay Beer is part of a team, lead by Nursing professor Karen McDonnell , which has been awarded a two-year grant to study ways to improve the survival rates of lung cancer patients. The grant is funded by the Bristol-Myers Squibb Foundation and will allow for the creation of a statewide network that will survey existing support systems and identify gaps in patient coverage in the state. Lung cancer is the most commonly diagnosed cancer in S.C. and is also the leading cause of cancer deaths. More information on the official announcement.

    Nathaniel Stone and Theodore Stone Win ACM Student Research Award

    We are proud to announce that Nathaniel Stone and Theodore Stone, both undergraduates, won the first prize in the undergraduate category of the Student Research Competition at ACM MobiCom 2016. Their research poster is titled "Assessing Header Impacts in Soccer with Smartball". It represents one of the many possible Internet of Things applications that Computer Science researchers are investigating. You can click on their poster on the right to see a larger view.

    NSF Research Award for Sustainable Water, Energy, and Food Nexus

    Dr. Gabriel Terejanu is part of a group of researchers that have received a $2M NSF grant for the creation of a "Center for a Sustainable Water, Energy, and Food Nexus (SusWEF)". The other investigators on the project are Nelson Cardona-Martinez (UPR), Juan Lopez-Garriga (UPR), Maria Curet-Arana (UPR), and Andreas Heyden (USC). Non-technical Description The project addresses the food-energy-water nexus for agriculture in the collaborating jurisdictions (PR and SC). Experimental and computation methods will be combined to better understand biomass deconstruction, the use of lignin for soil improvement, and to develop separation technologies for water treatment. The anticipated outcomes will lead to more sustainable agricultural practices, improved energy efficiency and soil and water quality. A comprehensive suite of education and outreach activities will provide training for K-12 teachers, research experiences for undergraduate and graduate students, and mentoring for early career faculty. These programs will recruit underrepresented minorities and women and broaden their participation in STEM (Science, Technology, Engineering, and Mathematics) fields. Technical Description This project will support complementary, collaborative research between the University of Puerto Rico Mayaguez (UPR) and the University of South Carolina Columbia (USC) to address fundamental issues in biomass deconstruction, catalysis, lignin, and membranes separation technology for engineering improved agricultural sustainability. UPR will perform bottom-up design of nanostructured catalysts for targeted transformation of biomass waste into value added chemicals as well as the study of soil amendment using lignin. USC will focus on the development of advanced composites and membranes to remove contaminants of emerging concern from irrigation water.

    How I Landed a Job at Google - by Maribeth Bottorff

    Maribeth Bottorff is one of our three class-of-2016 undergraduate majors who went to work for Google. We are extremelly proud of her. At our request, she has written the short article below about her undergraduate experiences and her advice for getting a job at Google or other major tech companies. My name is Maribeth Bottorff and I graduated in May 2016 with a Bachelor of Science in Computer Science from UofSC. In July, I started my full-time job as a software engineer with Google through their Engineering Residency, a rotational program for new graduates. When I tell people I work at Google, I get the same reactions: “Wow, you must be so smart!” or “Wow, how did you get that job?” or “Wow, that’s awesome!”  Yes, it is awesome and, yes, I’m really excited about it. But, no, I am not a prodigy, though I have worked hard to get here. And now I’m going to tell you how I got the job. But I want to stress that this is not a formula, it’s just a glorified list of things I did and somehow at the end of it all they wanted to hire me. You could do all of these things and not get interviewed. You could do none of them and get hired and make way more money than me. Just remember that these are not instructions for you to follow, just some ideas that you could perhaps take inspiration from.


    Your coursework is the most important part of getting a degree, and I’ve been asked several times in interviews about my classes. It’s also helpful that I have projects on my resume that I did for class. I worked hard to keep my GPA up, but I also took classes that challenged me and were interesting. I could probably have found a way to have my same GPA but with less work, but instead I opted to have stories to tell from the classes I took. For example, I took the Critical Interactives: Ward One class with Dr. Buell, which was challenging technically as well as personally, and I invested a pretty large chunk of my time into the class. But I’ve also spoken about this class and the Ward One project during interviews more than any other single experience I’ve had in college. During behavioral interviews I told stories about teamwork, designing for clients, finding bugs, coping with failure, compromising for deadlines, and so many more situations all from this single class. I also took CSCE 750, the graduate level Analysis of Algorithms class, which was very tough but made me a better computer scientist as well as enabled me to better answer technical interview questions. I could have chosen an easier elective, but I would have gained fewer transferable skills from that kind of experience. The GPA as a number on my resume takes up very little space compared to the skills, projects, and experiences that I am able to list.


    Another important component of my resume is my projects section. Throughout college, I spent some time working on personal projects that reinforced what I was learning in class. Recruiters I’ve spoken to are interested in real-world applications of the knowledge I’ve gained in the classroom, not simply that I’ve heard someone lecturing about a topic. Depending on your specific circumstances, you may not have a lot of time to devote to projects outside of class, but I recommend making it a goal to work on something, even if it isn't very big. In fact, none of the projects that I've done outside of class have been monumental, but employers have nonetheless been very interested in them. Some example projects I've done: a Java program that reads in a text file and generates JavaScript to make an online interactive quiz, a Python program that scrapes a web page for the school weather closing status and texts me (using a free Twilio account) when we get a snow day, or a comment board that can post and update comments using Facebook’s React framework. None of those projects are huge and they will never be used by anyone other than me, but I talked about them during interviews and some of them have been on a resume at various points in time. It’s worth spending a little time, even just a weekend or a couple of hours one afternoon, creating something for yourself instead of for class.


    Another way you can generate projects for your resume is by going to hackathons. A hackathon is a typically 24 or 36 hour event where teams create an app from scratch over a weekend. Some might be themed, like hackathons to “hack” healthcare, but typically teams can build whatever they want. You can win prizes, but they’re also a good way to learn a new technology and add a project to your portfolio. They aren’t for everyone, and it’s okay if you never do them or you don’t like them. I went to PennApps in January 2016, which is one of the biggest hackathons in the country. It was pretty fun, but I’m not sure I would do it again. If you're an adrenaline junkie or you just like to stay up all night coding anyways, you might have a good time. There are also hackathons specifically aimed at beginners and people who have never been to them before, which might be a better place to start than something like PennApps which was pretty competitive. If you want to go to one, look on places like DevPost for hackathons, which typically occur in the spring and sometimes fall semesters. Many of the larger hackathons have travel reimbursements that you can apply to. For example, I went to PennApps in Philadelphia for about $15 because they reimbursed me for nearly the entire cost of the plane ticket, I didn’t need hotel accommodations because I was staying up all night hacking (or sleeping in their designated sleeping quarters), and they provided all the food and snacks (and caffeine). So even if you're on a tight budget, you may be able to participate by applying for travel reimbursement, and while you're at it, you can travel around the country or even the world (one of my friends / fellow UofSC student went to a hackathon in Switzerland) for free or a low cost to you. I now have a hackathon project on my resume and I get to talk about using AngularJS, Ionic, NodeJS, and MongoDB in interviews, which are all skills that aren’t taught in any class that I’ve taken in school but which are immediately applicable to many software engineering roles.

    Events and Conferences

    Hackathons aren't the only events that offer travel grants, either. I’ve attended more than half a dozen conferences and events, many of which were partially or completely funded by someone else. If you’re presenting at a conference, your research mentor, the department, or student government may be able to help fund you. If you're a woman and interested in attending the Grace Hopper conference, first you should talk to your advisor or other professor who knows you so that you can be nominated for our department to send you, but you can also look at other scholarships to go, such as those offered by Google, Microsoft, Facebook, Salesforce, etc. One of the coolest conferences I got to attend was the Apple Worldwide Developer Conference in June 2015. Normally tickets are $1600 and awarded in a lottery system since it’s so popular, but I was given a free ticket to the conference through the WWDC Scholar program. I built an iOS app about myself in Swift (using the skills I learned in the Critical Interactives class I took) and was selected for a scholarship based on my app. I was in the same room where Tim Cook announced Swift would be open sourced, and I watched people clap way more for that than they did when Drake came out on stage! It was a great time and I got to go without paying for a ticket (which I never would have done on my own).


    The most important thing on my resume, though, when it comes to applying for full-time jobs, is my software engineering internship. Having an internship relevant to what you want to do after you graduate is so important because employers want some evidence that you know how to show up to work every day and can contribute in a corporate setting as well as the classroom. I attended the SET Fair put on by the Career Center on campus and got an internship at Premier, Inc. At the time of my interview, I had not yet finished CSCE 240 and I knew very little about software engineering, but it turned out to be an amazing summer, and I left with two mentors, several close friends, an excellent letter of recommendation, and a job offer for when I graduated. I also learned a ton of skills, like working with source control, databases, web apps, JavaScript frameworks, all of which are things not normally addressed inside the classroom. I don't think I would have gotten my job if I hadn't interned. I didn't intern as a freshman (because I was a chemistry major at the time!) but I do want to add that it is possible to get an internship as a freshman! Don't count yourself out because of how inexperienced or young you are. The advice I give to literally everyone is “let them tell you no.” Meaning, if you're not sure whether a company will take freshman interns, apply anyways and let them tell you they don't, rather than counting yourself out and not even applying. You can/should apply for regular software engineering internships, but it’s also worth checking into the freshman-specific programs that some companies have. Some examples are the Microsoft Explore program, Facebook University, and Google’s Engineering Practicum, and I believe there are others. Definitely attend the SET Fair when it comes around, and practice speaking to employers and talking about yourself and your accomplishments. You can also meet recruiters at places like hackathons and conferences that you get travel money to attend!

    Grace Hopper Celebration

    In fact, one of the best places to meet recruiters is at the Grace Hopper Celebration career fair. I mentioned GHC before, and I highly recommend that all women try to attend. The Grace Hopper Celebration is the largest gathering of women in technology in the country; last year around 12,000 people (mostly women) attended, including representatives from over 200 companies that are trying to hire interns and full-time employees. Get a professor to nominate you for our department’s funding to go, and also check out scholarships from companies like I mentioned earlier. If you get to go, work on your resume and upload it to the resume database as soon as it opens! This is so important. I got over 30 emails and phone calls from companies either inviting me to set up interviews or to apply with priority on their online applications. I had 4 interviews at Grace Hopper last year, which led to 3 on-site interviews and 2 job offers, in addition to the other offers I had from other sources. I also turned down multiple interviews because I didn’t have enough time at the conference or because I already had better job offers on the table.

    Owning Your Accomplishments

    The last thing I want to mention is that you should be able to talk about yourself and your accomplishments. If you've done all these great things like having an internship, completing personal projects, and going to hackathons, but nobody knows what you did, it’s hard to catch the eye of a recruiter. Don’t neglect your technical writing skills - you may need to impress both a hiring manager who can program and a recruiter who is technically illiterate with the same document. You need to have a solid resume that quantifies what you’ve accomplished and a LinkedIn profile that is up to date and tells a meaningful story about your experiences. It also helps to have allies/mentors/advocates who know you and can tell other people about your strengths. For example, Google has a form that professors can fill out to recommend their high achieving students, and the fact that at least one of my professors filled this out for me helped me move on to on-site interviews for my job. I also completed Graduation with Leadership Distinction, which you should also be able to complete if you’ve done the sort of activities I've mentioned here, where I was required to write a portfolio about my undergraduate experiences within and beyond the classroom. Completing the GLD portfolio helped me think critically about the things I've done in the past 4 years and how my extracurricular activities related to my classroom learning. Though I completed the portfolio after I already had a job, putting it together was a great way to reflect on my college career as I was about to graduate and improved my communication skills, which I'll need in my future career. I could probably write an entire article about each one of these topics, but I think I hit the highlights. Like I said at the beginning, this isn't a formula to follow but simply one person’s advice and priorities out of the many, many things you could choose to do with your college career, such as undergraduate research, volunteering and working with youth in STEM, being a teaching assistant or peer tutor, contributing to open source projects, or doing freelance/contract work. If you have any questions, feel free to get in touch via Twitter (@mebottorff), email (, or connect with me on LinkedIn. Good luck with your job search!