Skip to main content

Computer Science - Junior

Course # COMP 3022

Course Description

The significant issues with operating system implementation and design are examined in this course. An established, practical, and effective interface between user programs and the computer's basic hardware is provided by the operating system. The course will begin with a brief historical overview of how operating systems have changed over the past 50 years before moving on to discuss the main parts of most operating systems. The trade-offs that can be made between performance and functionality during the design and implementation of an operating system will be covered in this talk. Process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, and swapping), and file systems will receive special attention.

Course Learning Outcomes

By the completion of the course the students should be able to:

  • Explain operating system structure, components, and concepts in relation to the services that the systems provide and the implementation trade-offs.
  • Detect the different states that a task may pass through and the data structures and operations (such as context switching and dispatching) needed, task working in multiprogramming or timesharing environment, identifying the notion of a thread and issues related to multithreaded programming.
  • Apply scheduling algorithms, deadlocks, and the methods of handling deadlocks.
  • Explain various ways of memory organization and analyze memory-management techniques, features, and limitations.
  • Explain the file concept, function of file systems, file operations, directory structures, physical structure of mass-storage devices, analyze mass-storage management algorithms and services provided to mass storage.
  • Explain the operating system’s I/O subsystem, principles of I/O hardware and provide performance aspects of I/O hardware and software.

Course assessment and grading

Assessment item

Weight, %

Quizzes

25

Midterm

25

Homework

20

Final exam

30

 

Course # DMNS 3032E

Course Description

This course, Statistics-II, introduces advanced topics in statistics for computer science majors. This course teaches essential background and techniques for understanding advanced statistical methods, enabling students to perform data analysis and evaluate research. The course starts with a review of introductory statistics and probability, then covers topics such as sampling distributions, point estimation, inference, ANOVA, and an introduction to machine learning. R programming package will be used to enhance understanding and application of statistical techniques taught throughout the course.

Learning Outcomes

At the end of this course, students should be able to:

  • Define sampling distribution and its properties.
  • Test statistical hypotheses and determine significance.
  • Analyze data using programming language and interpret results.
  • Select appropriate statistical models and justify choice.
  • Regress data using programming language and interpret results.
  • Predict and draw conclusions using linear and multiple regression.
  • Analyze data using programming packages.

Course Assessments and Grading

Item

Weight

Homework

 10%

Project

.15%

Quizzes

20%

Class Participation

5%

Midterm Exam

20%

Final exam

30%

 

Course # HUSS 3061

Course Description

The course introduces you to the expectations and culture of computer science (CS) research and academic writing practice. It aims to support your progress from developing to competent writers through the analysis and practice of models of discipline-specific academic forms of communication and writing mainly through classroom activities and tasks. The course builds your knowledge and skills of research methods to enable you to write your undergraduate senior year research project/thesis in accordance with the standards and expectations set by the CS department and the university.

Course Learning Outcomes

After the completion of the course, you will be able to:

  • Identify the structures and functions of CS academic writing within the context of senior year research project
  • Employ critical reading strategies to evaluate the scholarly value of a discipline-related academic text for using it in your research project
  • Synthesize information, evidence, and author’s position from discipline-related academic texts to shape, support and locate your own position
  • Identify various stages and phases of the research process as they apply to your final year research project
  • Demonstrate the ability to choose an appropriate research method for your final year research project
  • Demonstrate a capacity to produce a Senior-year research report/thesis in a style and genre comparable to the standards of the computer scientists’ community within and beyond the university
  • Demonstrate a capacity to follow ethics while engaging in intellectual, academic and research pursuits

Course assessment and grading

Item

Weight

Comparative critical review of three research papers

20%

Research proposal

25%

Critical Evaluation Report

15%

Oral presentation

20%

Knowledge and skills check quizzes (a maximum of 10)

15%

Attendance/Classroom participation

05%

Course # COMP 3051

Course Description

Software engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems, preferentially by applying scientific knowledge, developing software systems in the service of mankind.  This course covers the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing and the application of software engineering tools.  It introduces concepts such as software processes and agile methods, and essential software development activities, from initial specification through to system maintenance. Formalisms and tools to assist in software development are also presented, including common design patterns and UML notation. There is a focus on software testing, from unit testing to the testing of software releases.

Course Learning Outcomes

By completion of the course the students should be able to:

  • Describe software architecture and software development lifecycle.
  • Describe the role of quality assurance activities in the software process.
  • Identify functional and non-functional requirements of a software system.
  • Use design patterns in software designing and software test cases.
  • Describe how software reliability contributes to system reliability.
  • Use Unified Modeling Language in software specification documents.

Course Assessments and Grading

Assessment item

Weight, %

Mid-term exam paper

20

Final exam paper

30

Quizzes

15

Homework assignments

15

Class participation

05

Group project report

15

Course # COMP 3072

Course Description

According to Tom Mitchell “The field of Machine Learning is concerned with the question of how to construct computer programs that automatically improve with experience”. This course covers the basic concepts and techniques of Machine Learning from both theoretical and practical perspective. The material includes classical machine learning approaches such as Linear Regression and Decision Trees, more advanced approaches as recurrent neural network and convolution neural network, etc. The course will explain how to build systems that learn and adapt using examples from real-world applications.

Course Learning Outcomes

By the completion of the course, the students should be able to:

  • Explain different machine learning techniques and select appropriate learning technique to solve a problem.
  • Examine the computation complexity of different machine learning algorithms.
  • Analyze machine learning algorithms using different performance evaluation metrices.
  • Apply the machine learning algorithms to real-world
  • Implementation of machine learning algorithms using computer programing languages.

Course Assessments and Grading

Item

Weight

Attendance & Activities

10%

Assignment (10 assignments)

20%

Quizzes (5 quizzes)

15%

Midterm exam (Paper Exam)

25%

Final exam (Paper Exam + Project)

30%

 

Course # COMP 4071

Course Description

This course will teach you how to create 2D and 3D drawings and animations, using JavaScript and WebGL, so that they can be displayed on web pages. You will learn how to use the mouse and keyboard to interact with these drawings, for example, to create and modify smooth curves. You will also implement in software some of the basic algorithms that WebGL performs, including line drawing, triangle drawing, and Z-buffer visibility tests.

Course Learning Outcomes

Upon the successful completion of this course, you will be able to:

  • Draw lines and triangles using WebGL.
  • Draw lines and triangles with your own software.
  • Write GLSL vertex and fragment programs for different sorts of shading and highlights.
  • Produce animated displays that change and move.
  • Interact with these displays using the mouse or touchpad.
  • Design smooth curves using multiple cubic Bezier curve segments.
  • Use hierarchical modeling to move segmented skeletons of characters or robots.
  • Use JavaScript and WebGL to create interactive and/or animated web pages.

Course Assessments and Grading

Item

Weight,%

Homework assignments

40

Quizzes

10

Midterm exam (1 midterm exam)

15

Final Project

20

In-class exercises

10

Attendance (UCA’s 10% policy enforced)

5

Course # HUSS 1080

Course description

The purpose of physical education is to strengthen health, develop the physical and mental abilities of students. Physical exercises and sports games is the way to a powerful and functional body, clear mind and strong spirit. The course is both practical and theoretical, it covers basic concepts of anatomy and physiology as well as health and safety requirements.  

Course learning outcomes

At the end of the course students will be able to:

  • perform a range of physical activities
  • understand health and safety requirements for a range of physical activities
  • describe the role and progress of sport in Central Asia
  • chose an appropriate physical activities program for their age and gender
  • identify tiredness and its symptoms to control the body during athletic exercises
  • describe the technique of running for a long and a short distance and jumping
  • accomplish running for a short and a long distance and jumping according to all necessary norms
  • describe the rules of a range of sports games
  • participate in a range of sports games according to their rules and techniques

The course will be graded with PASS/FAIL.