Computer Science Major
The Computer Science program is focused on helping students gain the necessary skills requisite to being productive leaders in the computing and related industries. As such, our graduates are expected to be highly competent, well-qualified computer professionals, having a broad training in software development, as well as being well prepared for graduate study.
The Computer Science program seeks to work in close cooperation with the computing industry, as well as with other universities and alumni, to provide a modern Computer Science curriculum. The cooperative environment will be evidenced, for example, by the creation of partnerships with regional and international universities and institutions; and a seminar series with speakers drawn from both academia and industry.
The Computer Science curriculum is designed to enable students to meet the following skill or competency-based student outcomes and show mastery of computer science knowledge and skills:
- demonstrate an understanding of and ability to apply current theories, models, techniques and technologies that provide a basis for problem solving
- work as an effective individual and as part of a team to develop and deliver quality software
- have the ability to communicate effectively both orally and in writing
- be aware of key ethical issues affecting computer science and the responsibilities of computer science professionals
- learn new theories, models, techniques and technologies as they emerge and appreciate the necessity of such continuing professional development.
Some of our graduates have gone on to successfully complete postgraduate degree programs in prestigious universities in the USA and Europe. Others have joined international companies such as Microsoft, Google, IBM, Hewlett-Packard, and Accenture. Still others have established their own successful software development companies as Wizcom, EastiSoft, telerik, Melon Technologies, and Embient.
Total: 12 courses
Required Courses (6 courses + Senior Project I):
COS 120 (or placement test) Software Development Using C++
COS 150 Discrete Structures
COS 221 Fundamental Data Structures
COS 235 Computer Architecture
COS 240 Object-Oriented Programming
COS 315 Software Engineering
COS 491 Senior Project I
And five elective courses from the following list, with no more than two courses chosen from each of the categories: COS (or INF) 200-level, 300-level, and 400-level.
INF 120 Basics of Java Programming
INF 140 Basics in C# Programming
COS 220 Concepts of Programming Languages
COS 231 Introduction to UNIX
COS 260 Assembly Language Programming
INF 280 Database Systems*
COS 301 Compiler Theory
COS 331 Operating Systems
INF 335 Web Server Technologies*
COS 440 Computer Networks
COS 460 Algorithms
COS 470 Artificial Intelligence and AI Programming
An additional group of (general) elective courses are represented by:
COS 481 Internship
COS 492 Senior Project II
COS L97 Topics in Computer Science (one or more) (L - defines the level of the course)
COS 498 Independent Study
*Not more than three INF courses may be counted for COS major credits.
As the basic programming language used across the COS major curriculum is C++, every student must demonstrate an appropriate level of C++ expertise in a placement test, or pass the COS 120 course. Students who pass the placement test in C++ may choose another course from the list of electives. Students who either fail the placement test, or who do not take it, must take COS 120. The subject of the course COS L97 “Topics in Computer Science” and its description is defined for every particular offering. Students can take more than one “Topic in Computer Science” course. A senior project counts as a Bulgarian Diploma Thesis.
Disciplinary Honors in Computer Science
Disciplinary honors may be given to a Computer Science major who upon graduation has met the following requirements:
- has achieved a grade point average of at least 3.5 in courses in the Computer Science major.
- has met the requirements for undertaking a Computer Science senior project and has successfully completed and publicly defended the project in front of a panel of Computer Science faculty.
- has received a grade of A for the senior project.
Based upon the project complexity, development professionalism, presentation, demonstration and documentation, the panel will decide whether or not to recommend honors.
A completed senior project counts as a state exam.