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.