Computer Science, BSc
Are you interested in technology and being part of an emerging regional industry? Do you want to develop skills and capabilities to face challenges of today's state of the art technology? Do you want to use software, hardware, and mathematics to enter the world of technology, start your own business or pursue study at a higher level? Do you want to learn about the emerging field of Computer Science in Central Asia, taught by experienced and renowned faculty? If so, UCA's Computer Science programme is for you.
UCA's Computer Science programme will not only develop you into a stellar programmer, but will equip you to be part of a new generation of knowledgeable and skilled information technology (IT) professionals ready to develop infrastructure and generate entrepreneurial opportunities in Central Asia.
UCA's Computer Science programme is designed in partnership with the University of Toronto, Canada.
Computer Science at UCA combines the mathematical building blocks of theoretical knowledge with applied programming skills. The concepts of hardware and computer architecture are provided in addition to advanced software topics to create a comprehensive preparation for students to enter the world of technology, start their own business, or pursue study at a higher level. Alongside the Computer Science course work, practical projects are assigned in various courses to provide the capability of dealing with unanticipated problems and to share their findings in refereed journals. Annual internships are another salient feature of the Computer Science curriculum.
Meet UCA's Computer Science Faculty
UCA's highly qualified international faculty have a depth and breadth of experience in both business and technology. Their experience is enabling students to develop innovative approaches to convert ideas into practice and in guiding students to levels of accomplishment beyond their perceived limitations.
- Artificial Intelligence
Data Structure and Algorithms
This course is an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasises the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems. Among the algorithms covered are common sorting algorithms such as insertion sort, and quicksort, techniques from number theory such as the spigot algorithm, divide and conquer algorithms such as the Fast Fourier Transform, in addition to a review of programming methods such as recursion.
- Digital Logic Design
- Computer Networks
- Web Technologies
- Operation Systems
Information Technology (Fundamentals of Programming)
This course aims to teach the Python programming language to students who have no previous knowledge about programming. It is designed as an introductory programming course and is also useful for those with prior programming experience looking to learn Python. Computer programming is a skill that is best learned through hands-on experience. This course introduces almost all Python programming language features, and then discusses many examples to illustrate how the feature can be used to solve different problems. As each a feature is presented, a complete programme example is provided to illustrate the feature. This reflects the overriding philosophy that has been used in designing this course: to teach by theory and practical examples. By doing so, not only will students learn the Python programming language and its syntax, but students will also become familiar with the process of typing in, compiling, and running Python programmes. This course is intended for anyone who is learning Python programming language for the first time. This course makes no assumptions about a particular computer system or operating system on which the Python language is implemented.
- Introduction to Computer Science
- Computer Architecture
- Data base Systems
- Programming Methodologies
- Software Engineering
- Compiler Design
- Automata Theory
- Android Application Design
- Computer Graphics
In this course, students choose a semester-long project that combines hardware and software, to build a device that combines sensing, computation, and control to achieve a complex task. The course begins with an introductory discussion about using the Arduino and/or Raspberry Pi controllers, combined with a variety of sensors. Students work in groups to build systems that solve a problem chosen by each student group.
This course aims to teach computer programming to the complete programming beginners using the C language. As such, it is assumed that students have no previous knowledge about programming. The main objective of this course is to teach fundamental programming principles using C, one of the most widely used programming languages in the world today. C is considered a ‘modern’ language even though its roots date back to the 1970s. Originally, C was designed for writing ‘systems’ programmes, operating systems, editors, compilers, assemblers and input/output utility programmes. Today, C is used for writing all kinds of application programmes for processing, spreadsheets, database management, accounting, as well as games, and educational software, among others. In this course, students will learn how to program in C language.
- Distributed Systems
- Image Processing
- Object Oriented Programming
* Courses are subject to change.
Elective courses are offered to students in line with the national requirements, and students can also choose free elective courses from another major.
You will acquire the following professional skills:
- Open, assemble, and analyse the performance of components of a computer system; knowledge of what each component does and how they fit together.
- Effective programming, data structures, and algorithm skills in one or more programming languages, including various techniques, analysis, and how to apply them to the creation, design, and processing of languages.
- Apply knowledge and practice of web development and design, together with the use of databases.
- Acquire machine learning and artificial Intelligence techniques.
- Demonstrate skills in linear algebra, differential and integral calculus, numerical methods, numerical algorithms, statistics and optimization, and apply them to the resolution of engineering problems using basic algorithmic procedures.
- Apply security principles and practices to the environment, hardware, software, and human aspects of a system, and evaluate the presence of risks and threats in computer systems.
Your minor complements your major area of study, enriching your skill set and knowledge base, making you an all-rounded candidate for any future employer. For example, if you are a Computer Science major and you minor in Development Studies, you can work in international development, offering both IT skills and an understanding of development in Central Asia.
- Software Development
- Computer Engineering
- Database and System Administration
- Information and Cybersecurity
- Web Development
- Computer Programming
- Social Media Management
- Multimedia Programming
- Research and Development
A combination of different assessment methods are used to evaluate the performance of students in the Computer Science programme. Depending on the type of the course, they can be classified into two categories:
1. Formative Assessment
Faculty members assess student performance during instruction. This method usually occurs regularly throughout the instruction process, and seeks to improve the achievement of students’ learning objectives through approaches that can support specific student needs. Examples of formative assessment methods used in the Computer Science programme include:
- In-class discussions
- Clicker questions
- Low-stakes group work
- Weekly quizzes
- 1-minute reflection writing assignments
- Homework assignments
2. Summative Assessment
Faculty members evaluate students learning, knowledge, proficiency, or success at the conclusion of the instructional period. Summative assessments are almost always formally graded, and can be used in conjunction and alignment with formative assessments. Examples of summative assessment methods used in the Computer Science programme include:
- Instructor-created exams
- Standardised tests
- Final projects
- Final essays
- Final presentations
- Final reports