Python Computer Science – EmSAT

Current Status
Not Enrolled
Price
Free
Get Started

Test descriptionThis standardized electronic test is designed to evaluate the competencies and understanding of candidates in the following disciplines: Arabic Language, English Language, Mathematics, Physics, Biology, Chemistry, and Computer Science. These subjects have been selected based on the prerequisites stipulated by higher education institutions for various academic specializations. The test is administered in centers accredited by the Ministry of Education. It serves candidates pursuing higher education, aiding them in fulfilling the requirements for entry into higher education programs.
  
Test objectivesMeasuring the core skills and cognitive outcomes of test takers.

EmSAT Achieve Computer Science- Python Public Test Specification

Test Description: EmSAT Achieve Computer Science is a 150-minute computerized test that measures test takers’ level of proficiency in Computer Science and determines their readiness for college. EmSAT Achieve Computer Science consists of two main Sections: Computer Science Theory and Problem Solving and Programming Practices. Test sections, questions, and options are randomized and timed by the test software. The computerized test is a timed test wherein the test clock is visible at all time to test takers.

EmSAT Achieve Computer Science
ScoreScore Descriptors
1500+High Proficiency: students at this level are well-prepared for Computer Science courses at the university level.
1100-1475Proficient: students at this level are at a satisfactory level of preparation to begin first-year Computer Science courses at the university level.
900-1075Borderline Proficient: students at this level are minimally prepared for first- year Computer Science courses at the university level.
700-875Basic: students at this level do not have sufficient mastery of prerequisite knowledge for first-year courses in Computer Science at the university level and may need some additional support.
500-675Needs Improvement: students at this level need additional instructional support in basic Computer Science concepts and skills before beginning any first-year Computer Science courses.
˂ 500Little Knowledge of General Computer Science: students at this level need intensive instructional support in basic Computer Science concepts and skills.

Content Areas

Below are the major sections and related content specifications that grade 12 students should be able to demonstrate mastery of in order to meet the expectations of this test.

Section 1: Computer Science Theory [35%]

This section tests the examinee knowledge in main computer science theory domains such as computer systems and network, data analysis, and impacts of computing.

1. Computing Systems and Networks [25%]

Examinee should be able to:

  1. Identify the hardware components of a given computing system and describe the function of these components.
  2. Differentiate between different types of computing systems software and give examples on each software type (application software and system software).
  3. Demonstrate knowledge of how software control hardware and apply computing systems troubleshooting strategies on basic hardware and software problems.
  4. Design logic circuits and distinguish between the logic gates (AND, OR, NOT, XOR…etc.)
  5. Demonstrate knowledge of the computing trends (e.g., big data, machine learning, AI) and computing devices (e.g., microcontrollers, embedded systems …etc.).
  6. Differentiate between different network types and recommend suitable network type for a given scenario.
  7. Differentiate between different types of network topologies and recommend suitable network topology for a given scenario.
  8. Identify different network hardware and software and demonstrate knowledge of their role in the network operation.
  9. Demonstrate knowledge of network architecture and task allocation between network hosts (Client-Server Model and Peer-to-Peer Model).
  10. Identify the network security issues and threats and apply the network security principles in network design.
  11. Demonstrate knowledge of network communication layers models and identify each layer functions and the protocols serving each layer.
  12. Identify different types of addresses and explain their role within one network communication or between different networks communication.
  13. Compare guided (wired) and unguided (wireless) transmission media in term of cost, reliability, and security.
  14. Identify the factors that affect the network performance and distinguish between the different components of nodal delay.
  15. Identify security measures designed to protect computer networks and describe vulnerabilities that the various types of cyber threats can exploit.

Data Analysis [10%]

Examinee should be able to:

  1. Identify different data collection methods and apply these methods for locating and collecting a variety of data sets.
  2. Analyze and identify patterns in a variety of data sets.
  3. Identify different methods to store data and manipulate them and demonstrate knowledge of issues related to data security.
  4. Identify different numbering systems and convert between numbering system to another.
  5. Use the binary numbering system to represent different types of data in computers such as sound, image and text.
  6. Select appropriate representations of data (e.g., charts, graphs, network diagrams, flowcharts) and use computers to model and simulate different real-life processes and phenomena.

Section 2: Problem Solving and Programming Practices [65%]

This section tests the examinee knowledge and skills in problem solving techniques and tests whether the examinee is able to use programming skills as a tool to solve computational problems.

3. Algorithms and Programming [65%]

Examinee should be able to:

  1. Break programming specifications into steps and use different algorithm representations such as pseudocodes and flowcharts to represent algorithms as first stage before coding.
  2. Evaluate and compare algorithms in term of their efficiency, simplicity, complexity, and clarity and suggest modifications to improve algorithms functionality.
  3. Apply the pillars of computational thinking as a process to solve a computational problem and select appropriate method to a given context.
  4. Create different types of variables (data types: integer, double, string…etc.) and differentiate between variables and constants in term of their roles and manipulation.
  5. Distinguish between different operators (arithmetic, logical and relational) and evaluate simple and compound expressions.
  6. Create different static data structures and perform different operations (update, swap, research…etc.) on them in order to manipulate their elements or extract information.
  7. Read and write data from external data structures such as files and decide when it is appropriate to use external data structure.
  8. Create different dynamic data structures and perform different operations (update, swap, research…etc.) on them in order to manipulate their elements or extract information.
  9. Program using Procedure-Oriented Programming (POP) and create different types of functions based on whether they accept arguments and/or return values.
  10. Program using Object-Oriented Programming (OOP) and be able to apply the features of the OOP such as inheritance, encapsulation, abstraction, and polymorphism.
  11. Combine sequence steps of instructions in order to achieve a specific task.
  12. Distinguish between different selection statements (If Statement, If-Else Statement, Nested If-Statement, Switch/Case) and select the appropriate selection statement based on the problem given.
  13. Distinguish between different iteration statements (For Loop, While Loop, Do-While Loop) and select the appropriate iteration statement based on the problem given.
  14. Compare and contrast different high-level programming languages and identify the main components of the programming environment.
  15. Combine all programming constructs (sequence, selection, and iteration) and components (variables, control structures, operators, functions…etc.) together in order to build a program that meets certain design specifications.
  16. Identify different types of programming errors (runtime, syntax and logical) and apply different testing techniques to ensure program correctness.
  17. Apply programming best practices when coding and produce well documented program that is easy to read, reuse and maintain.

Course Content

Section 1: Problem Solving and Programming Practices
Section 2: Computer Science Theory
EmSAT Mock Exam