M.Sc. in Computer Science
Thank you for expressing interest in the Master of Science in Computer Science Program offered by the University of Indianapolis in Athens. The program is designed to serve a diverse audience with a variety of personal and career goals, including recent college graduates aiming to acquire a more robust theoretical and technical background in computer science and software engineering, professionals from the industry planning to acquire a basis that will allow them to further their careers and nontraditional students in search of personal enrichment.
Our objective in this highly demanding program is to offer our graduates a strong background in computer science, enabling them to tackle complex theoretical and practical problems in both industry and academia. Our difference from other programs is that the focus is mainly on the principles that govern the design, implementation and practical applications of computing rather than simply on the specific options offered by currently available commercial tools.
Although a direct link of studies to the industry is not a graduation requirement, the department both encourages and supports this option. Students may choose to combine their thesis work with a real life project of an affiliated industrial partner. In this way students may pursue
- financial support prior to graduation and
- immediate employment at the time of graduation.
We hope that you will find the M.Sc. in Computer Science an interesting and challenging program and we look forward to discussing our program with you in the context of your own background, interests and goals.
M.Sc. in Computer Science Program Outline
- Software Engineering 3 credits
- Data Structures and Algorithms 3 credits
- Distributed Operating Systems 3 credits
- Multimedia Systems 3 credits
- Databases 3 credits
- Object Oriented and Network Programming 3 credits
- Artificial Intelligence 3 credits
- Concentration Topics in Computer Science 9 credits (3 courses)
- Thesis 6 credits
Full time students can complete the program in 18 months following the course of study indicated bellow. However, the program is flexible and organized to suit working professionals. Students can vary the pace at which they take courses in accordance with other demands made on their time. For successful completion of the program a grade point average of 3.0 out of 4.0 is a minimum requirement.
*The University reserves the right to make changes to the scheduling of courses.
The objective of the course is two-fold: i) to discuss the theory, principles and practice of software engineering and ii) to provide students with the software engineering basis that they will need for the other courses of the program. Different software process models are presented, including waterfall, incremental and spiral. The requirements, specification, design, implementation, integration and maintenance phases of the software production cycle are examined, pointing out difficulties and recommended practices. With the use of references to real cases and the analysis of a major case study theoretical knowledge is consolidated and transferred to the applied field.
Data Structures and Algorithms
The course reviews basic notions on data structures and algorithms one is assumed to have been taught at the undergraduate level and then further continues the discussion on these topics in order to meet the depth expected at the graduate level. As far as data structures are concerned, the course starts with a review of array and dynamic memory implementations of FIFO and LIFO structures and continues to discuss more complex data structures such as AVL trees, B trees, sparse representation solutions and so on. When it comes to algorithms, the course discusses sorting, searching, searching in text, complexity, algorithm design as well as NP-complete problems and their practical applications.
Distributed Operating Systems
Basic notions of uni-processor operating systems are reviewed before moving on to multiprocessor and multi-computer operating systems as well as on to distributed systems. Topics covered include basic definitions, communication, processes, naming, synchronization, consistency and replication, fault tolerance, security, and distributed file systems, as well as specific implementations.
Systems. The course aims to introduce students to the coding and processing aspects of multimedia systems. The course starts by presenting the enabling technologies for multimedia and continues to address issues such as audio technology, graphics and images, video technology, multimedia compression and optical storage media, not leaving out more advanced topics such as content analysis and semantic annotation.
Both introductory and advanced issues in database theory are discussed. Topics covered include various data models such as entity-relationship, relational, object oriented and XML, relational algebra, single- and multi-dimensional indexing, storage and operational disaster recovery and concurrency control. References to multimedia databases and data warehouses are also made.
Object Oriented and Network Programming
The course builds upon students' previously acquired programming skills in order to introduce concepts of advanced programming. These include sockets, RMI, distributed computing, multithreading, advanced file management and I/O, multithreading and interfacing to databases. The programming environment utilized will be Java or an equivalent.
The objective of this course is to introduce students to the field of AI. Once initial definitions have been provided the course will progress to cover a variety of AI components. Specific topics include intelligent agents, blind searching, heuristics and heuristic algorithms, adversarial searching and game programming, reasoning, knowledge representation, uncertainty and learning. The course is not limited to the theory of AI; students develop working models of their own as part of the course requirements.
*The University reserves the right to make changes to the content of courses.
Through the proper choice of concentration topics the program can be adjusted to best fit i) the rapidly changing field of computer science, ii) shifts in the computer science industry and iii) specific interests of individual students.
Each CSCI 531 course will cover a particular area of computer science not covered comprehensively in one of the core courses. Selection of CSCI 531 courses is not performed solely in response to student needs and science trends. Concentration courses need to be combined appropriately thus providing a meaningful concentration; departmental consent is required to ensure this
The objective of the thesis is to be the capstone of the program. Students will have to draw from most of the other courses of the program, as well as from their own experience, and complement these through further research and work in order to prepare their thesis.
Each student is required to prepare a thesis on a subject related to their respective field of concentration under the guidance of a supervisor. Departmental consent is required for both the topic and the instructor. Depending on whether the thesis is of a literary nature or application-based the length of the document may vary. Additionally to the preparation of the thesis, students will be required to present their thesis to a scholarly audience and respond to questions.
Direct connection of the thesis topic to the industry is not mandatory by is preferred and supported.
1. Three letters of recommendation, at least two of which from former professors of the applicant.
2. A transcript showing a baccalaureate degree from a regionally accredited institution in the United States or a transcript showing the equivalent of a baccalaureate degree for students applying from outside the United States . All undergraduate coursework must be documented by transcripts.
3. Proficiency of the English language as evidenced by
- TOEFL with a score of 213 or higher, or
- Bachelor's degree earned from an English speaking institution, or
- Certificate of Proficiency in English.
4. Adequacy of scientific and technical background as evidenced by
- Cumulative grade point average of 3.2 or equivalent for a baccalaureate degree in a scientific or technological field or
- Existing graduate degree of a scientific or technological field, or
- Graduate Record Examination scores for the General and Mathematics or Computer Science tests or
- Documented professional experience.
5. Personal interview with the Director of the program.
6. Completed application form
7. Paid application fee
In the case that an applicant fails to complete a file with all of the above within the application deadline it is in the discretion of the department to grant conditional acceptance to the program. In the case of a conditional acceptance the applicant is required to maintain a cumulative grade point average of 3.0 at the end of the first 12 credit hours taken in the context of the program or will be rejected from the program.
In order to fulfill the graduation requirements for the M.Sc. in Computer Science graduate program students need to:
- Complete core courses
- Complete concentration courses achieving B- or better in each course. Departmental approval is required for the specific combination chosen as to assure that a meaningful concentration is achieved.
- Prepare a thesis and present it to a scholarly audience, achieving a B or better.
- Maintain a GPA of 3.0.