datastructures-in-python
  • Home
  • Downloads & Misc-Assets
  • README
  • Navigation
  • Curriculum
    • Outline
      • General Content
      • Python-Data-Structures-Unit
    • wk17
      • Outline-w17
      • homework
      • D1-Module 01 - Python I
        • Configuring Ubuntu for Python Web Development
        • Install Python
      • D2- Module 02 - Python II
      • D3- Module 03 - Python III
      • D4-Module 04 - Python IV
    • wk18
      • Outline-W-18
      • D1- Module 01 - Number Bases and Character Encoding
      • D2- Module 02 - Hash Tables I
        • Hash Table / Hash Map In Python:
        • Hash Table Use Cases
        • Practice
      • D3-Module 03 - Hash Tables II
      • D4- Module 04 - Searching and Recursion
    • wk19
      • Outline-W-19
      • D1- Module 01 - Linked Lists
        • Homework
          • Helpful Resource
      • D2- Module 02 - Queues and Stacks
      • D3- Module 03 - Binary Search Trees
        • BST Definition:
      • D4- Module 04 - Tree Traversal
        • Tree Traversals (Inorder, Preorder and Postorder)
    • wk20
      • Outline-W-20
      • D1-Graphs I
      • D2-Graphs 2
      • DFS
      • D4
  • Utilities
    • Utilites
      • Python Libraries
      • YouTube
      • Code Lab Notebook Embeds From Lecture
    • Code lab Notebooks
    • Repl.IT
      • Trinket
  • Abstract Data Structures
    • Algorithms
      • Algo-Resources
        • List-Of-Solutions-To-Common-Interview-Questions
      • Dijkstra's algorithm
      • Calculate a Factorial With Python - Iterative and Recursive
      • DFS
      • BFS
        • BFS Examples
      • Palendrome
    • Data Structures Overview
      • General Data Structures Notes
        • DS-Explained-Simple
      • Untitled
      • Algorithms
      • Dictionary
    • Abstract Data Structures:
      • Array
        • Extra-Array
        • Array Practice
      • Binary Search
      • Binary Tree
        • Binary Tree Explained
        • Find the maximum path sum between two leaves of a binary tree
      • Binary Search Tree
        • BST Explained
        • BST Insert
        • BST-Largest-Sub-Tree
      • Exotic
        • Tire
        • Dynamic Programming
      • Graphs
        • Overflow Practice Problems
        • Graphs Explained
        • Earliest Ancestor
        • _Mini Graph-Projects
          • # Social Graph
          • number of 1 islands
          • Searching and Generating Graphs
        • Graph FAQ
          • Graph DFS
        • Connected Components
        • Randomness
        • Graph BFS
        • Topological Sort
      • Hash Table
        • Hashmap or Hash tables
        • Hash Table and HashMap in Python
      • Heap
        • Heap Examples
      • String
      • Map
        • Examples
      • Queue
        • Queue Continued...
        • Queue Sandbox
        • Dequeue
      • Tree
        • In Order Traversal
        • Tree Equal ?
        • Ternary-search-trees
        • Red_Black Tree
        • Tree Mirror:
        • Tree Traversal
      • Recursion
        • Recursion Explained
          • Recursion Examples
      • Linked List
        • Linked List Background
        • Double Linked List
        • List Example
        • Examples (LL) continued
        • List Operations
      • Set
        • Set
        • Set Intersection Union
        • Disjoint Set
      • Sorting
        • In JavaScript
        • Merge Sort
        • Iterative Sorting
        • Recursive Sorting
        • Graph Topological Sort
        • SelectionSort
        • Quick Sort
        • Merge Sort
        • Insertion Sort
      • Stack
        • Stack Continued
        • Stack Part 3
      • Searching
        • Binary Search
        • Searching & Sorting Computational Complexity (JS)
  • practice
    • GCA Sprint Prep:
      • Practice Problems
      • Code Signal CGA Sprint Resources
      • CGA-Sprint Prep
    • Supplemental Practice:
      • Practice
      • JavaScript Algorithms
      • Industry Standard Algorithms
        • Interview Practice Resources
        • Write a Program to Find the Maximum Depth or Height of a Tree
      • Random Examples
      • Prompts
      • JS_BASICS
  • Resources
    • Python Cheat Sheet
      • Cheatsheet-v2
      • List Of Python Cheat Sheets
    • Youtube
    • PDF Downloads
    • Intro 2 Python
    • Dictionaries
      • Dictionaries Continued
    • Python VS JavaScript
    • Misc. Resources
    • Things To Internalize:
      • Functions
    • Intro To Python w Jupyter Notebooks
    • Calculating Big O
    • Useful Links
      • Awesome Python
      • My-Links
      • Beginners Guide To Python
  • Docs
    • Docs
      • Strings
        • Strings Continued
      • Touple
      • Values Expressions & Statments
      • Dictionaries, sets, files, and modules
        • Modules
      • Built-in Types
      • Built In Functions
        • Zip Function
      • Functions
      • Classes and objects
        • Inheritance
        • Classes
          • Python Objects & Classes
          • index
      • Dictionaries
      • Conditionals and loops
      • Lists
        • Reverse A List
        • Python Data Structures
        • More On Lists
        • Examples
          • More-Examples
        • List Compehensions
      • Basic Syntax
      • String-Methods
    • Queue & Stacks
  • quick-reference
    • My Medium Articles
    • Free Python Books
    • WHY Python?
    • Debugging
    • Python Snippets
    • Python3 Regex
    • Python Module Index:
      • Requests Module
    • Creating Python Modules
    • Useful Info
    • Python Glossary
    • Python Snippets
  • MISC
    • Built-in Methods & Functions
    • Data Structures Types
    • Math
    • Unsorted Examples
    • Outline
    • About Python
      • Python VS JavaScript
      • Python Modules & Python Packages
      • Misc
      • Python's Default Argument Values and Lists
      • SCRAP
  • Interview Prep
    • Interview Resources
      • By Example
        • Algo-Prep
      • Permutation
      • How to Write an Effective Resume of Python Developer
      • Interview Checklist
      • 150 Practice Problems & Solutions
  • Installations Setup & Env
    • python-setup
    • Installing Python Modules
    • Set Up Virtual Enviornment
  • Aux-Exploration
    • Related Studies
      • Self-Organizing Maps: Theory and Implementation in Python with NumPy
      • List Directory Contents
      • Employee Manager
      • OS Module
      • server-side-scripting
      • Web Scraping
      • Reading and Writing to text files in Python
      • General Data Structures
      • Touple
      • How to round Python values to whole numbers?
      • Python Array Module
      • Data Structures In JavaScript
      • Dunder Methods
      • Python GitHub API
      • JS-Event Loop
      • JavaScript Event Loop
      • Manipulating Files & Folders
  • experiments
    • Untitled
Powered by GitBook
On this page
  • What is the GCA?
  • How do I take the test?
  • What is on the test?
  • How long does it take?
  • Can I retake the GCA?
  • Why is the test proctored?
  • Share Your Results on LinkedIn
  • Background
  • How to Practice
  • Scoring
  • Implementation, Problem-Solving, and Speed Ratings
  • Question 1
  • Question 2
  • Question 3
  • Question 4
  • Rules
  • Testing Link
  • See Also

Was this helpful?

Export as PDF
  1. practice

GCA Sprint Prep:

PreviousSearching & Sorting Computational Complexity (JS)NextPractice Problems

Last updated 3 years ago

Was this helpful?

What is the GCA?

The GCA is a proctored assessment that provides a certified report you can use when applying for jobs. It is a standardized assessment that provides a high-level score for a candidate's programming skill. It maps programming skills to a score from 300 to 850, combining information about problem-solving and code-writing skills and speed and code quality. It is a measure meant to give recruiters, hiring managers, and educators – as well as the test-takers themselves – a quick view of the test-taker’s skills. Taking the assessment will be a data point that informs how career-ready you are and how you can continue to improve during Labs and Job Search. One key way that hiring managers are assessing new hires during remote work is with automated technical assessment testing, like GCA. This is why we will continue to evaluate how our students perform on these types of tests.

How do I take the test?

Be sure to take the test using the link above, and sign up with your e-mail. You must also select to share your results with Lambda so we can get your score back.

You will also need the following to take the test:

  1. Grab your photo ID. Have a government-issued photo ID ready to show (like driver's license or passport).

  2. Prepare your computer. Make sure you have the following: Chrome or Firefox, a reliable internet connection, webcam and microphone.

  3. Time and space. Reserve 1 hour and 10 minutes to take the test somewhere quiet.

  4. Share your webcam and desktop. When prompted, share your entire desktop screen as well as your webcam. Do not end video or close any windows or screensharing until the test is finished.

Again, you must take the test with your email address! This may require you to sign out of CodeSignal if you previously created an account and sign in with your email.

What is on the test?

Each test draws from a pool of question types. There are four tasks for you to solve. Each test contains a very basic task, a simple data manipulation task, an implementation task (requires writing at least 25-40 lines of code, but the description clearly explains what needs to be done), and a problem-solving task (where you need to come up with the approach yourself).

How long does it take?

The GCA test is limited to 1 hour and 10 minutes, starting from the time you begin the test.

Can I retake the GCA?

You can retake the GCA after a 2 week 'cool off' period.

Why is the test proctored?

The test is proctored to guarantee the integrity of the assessment. Since GCA assessments are certified and shared across multiple companies, automated proctoring is required for the GCA. Without automated proctoring, for example, someone else can take the test for the given candidate and provide inaccurate test results. Note that Lambda School does not share your results with companies, but you may do so if you choose.

Virtual proctoring data is reviewed by CodeSignal only and is stored for no more than 15 days.

Share Your Results on LinkedIn

The test is four problems, which are CodeSignal/HackerRank/Leetcode-style programming challenges. Problem 1 is generally the easiest, progressing to the hardest with problem 4.

The result score is between 300 and 850 (best). 650 is about the low end for Junior Dev.

This test is about your problem-solving skill, not about your Googling skill. You are expected to ponder the problems and come up with your own solution. Pasting solutions in from elsewhere and trying to make them work is prohibited. Even googling for another solution is prohibited. (You can, however, search for syntax help.)

For this reason, you should practice this skill throughout CS. CS is all about using UPER to solve problems you've never seen before without Googling, and the GCA measures this skill.

Background

Since GCA is designed to measure skills that are important for almost all software developers, CodeSignal has aimed to find the common denominator between three different sources of data.

  1. What are the most common topics taught in different CS programs at 4-year Universities in the US?

  2. What are the most common topics covered during technical interviews at successful US-based companies?

  3. What are the most common questions asked on StackOverflow that are about general programming and not specialized domain knowledge?

CodeSignal has used MIT OCW, EdX, Coursera, and Udacity course catalogs as a source for #1. They've used the book Cracking the Coding Interview, CodeSignal Interview Practice Mode, Leetcode, CareerCup, and Glassdoor Interview Questions sections to identify #2. And StackOverflow public API for #3.

How to Practice

Do the coursework in Lambda CS.

  • Try to generally restrict your searching to syntax unless otherwise directed

  • Don't search for problem solutions for the sprint challenges; syntax only

  • Same for the GCA, proctor-enforced

Additional, optional resources:

    • Solve the first 50 problems

      • Except spend your earned coins to skip Corner of 0s and 1s

      • Some of these are challenging--feel free to buy your way ahead if you need to come back to a hard problem later

    • Keep solving more for more practice.

    • Once you get a few hundred coins, unlock the interview practice and other things in the main menu.

Scoring

If you get 100% of the tests passing on a submission for a set of problems, you'll get a base score, listed in the table below. This base score is modified up or down based on a variety of factors.

Score Modifiers

The score is modified ±12 points based on three factors:

  • Number of attempts

    • Your score will be modded if you make more or fewer than the average number of submissions for a particular problem.

    • Running the tests doesn't count as a submission. You must click the Submit button for it to count.

  • Time taken

    • Your score will be modded if you take longer or shorter than the average amount of time to solve a problem.

  • Code quality

    • Your code quality will be automatically judged based on a variety of factors, e.g.: consistent spacing and indentation.

Again, the most the base score will change as determined by these factors is ±12 points.

Strategy recommendation: don't worry about the modifiers. Just concentrate on UPER and solving the problem.

Partial Credit

If you submit and pass fewer than 100% of the tests, you'll receive partial credit for the submission depending on how many tests you did pass. In other words, you won't achieve the base score for that problem, but will get part way toward the base score.

Scoring Table

If you get 100% of tests passing for the listed questions in the left column, your base score is in the center. On the right is the modifier range, ±12 points from the base score.

Correct Answers

Base Score

Modifier Range

1 . . .

662

650-674

. 2 . .

700

688-712

1 2 . .

712

700-724

. . 3 .

731

719-743

1 . 3 .

743

731-755

. 2 3 .

750

738-762

1 2 3 .

763

751-775

. . . 4

780

768-792

1 . . 4

792

780-804

. 2 . 4

799

787-811

. . 3 4

805

793-817

1 2 . 4

812

800-824

1 . 3 4

818

806-830

. 2 3 4

825

813-837

1 2 3 4

837

825-849

For example, if you get questions 1, 2, and 3 100% correct, but you make a lot of incorrect submissions and take longer than average, you'll to score closer to 751. If you get them correct in the first submission in record time, you'll score closer to 775.

Strategy recommendation: Choose the problem that looks the easiest to tackle first. This is likely question 1, but read them all to find out.

Implementation, Problem-Solving, and Speed Ratings

In addition to the numeric score, additional ratings are presented. Lambda does not use these ratings, but they are included for your information.

Speed is your rating compared to the average speed to solve the problems.

The other two ratings are determined by which problems are solved, as shown below:

Solved Tasks

Implementation

Problem-Solving

1 . . .

Low

Low

. 2 . .

Fair

Fair

1 2 . .

Fair

Fair

1 2 3 .

Good

Average

1 2 . 4

Good

Good

1 2 3 4

Excellent

Excellent

Question 1

NOTE: these aren't definitive or complete lists! They don't say exactly what will be on the test, and the test questions might require more or less knowledge than listed. The information below is included to give you an idea of the relative difficulty of each question.

Expected Knowledge

  • Working with numbers.

    • Basic operations with numbers.

  • Basic string manipulation.

    • Splitting a string into substrings.

    • Modifying the elements of a string.

  • Basic array manipulation.

    • Iterating over an array.

Can Include

  • Tasks that require a combination of 2 to 3 basic concepts. For example:

    • Iterating over an array and taking into account some condition.

    • Splitting a string by some condition.

  • Should usually be solvable using one loop.

  • The task description should clearly state the implementation steps.

Question 2

Expected Knowledge

  • Working with numbers.

    • Basic operations with numbers.

    • Splitting numbers into digits.

  • Basic string manipulation.

    • Splitting a string into substrings.

    • Comparing strings.

    • Modifying the elements of a string. – Concatenating strings.

    • Reversing a string.

  • Basic array manipulation.

    • Iterating over an array.

    • Modifying the elements of an array.

    • Reversing an array.

Can Include

  • Tasks that require a combination of 3 to 5 basic concepts. For example:

    • Splitting a string into substrings, modifying each substring and comparing with other strings.

    • Iterating over an array to produce two new arrays given some conditions, modifying the second array and appending it to the beginning of the first array.

  • Should usually be solvable using one to two nested loops.

  • The task description should clearly state the implementation steps.

Question 3

Expected Knowledge

  • Includes everything from the previous task.

  • Splitting a task into smaller subtasks/functions.

  • Manipulating two-dimensional arrays.

    • Iterating over the elements in a particular order.

    • Modifying values.

    • Swapping rows/columns.

  • Using hashmaps.

    • Using built in hashmaps to store strings or integers as keys.

Can Include

  • Implementing a specific comparator for strings.

  • Implementing a specific merge function for arrays.

  • Other implementation challenges that clearly explain what needs to be done and require translating the instructions into code.

Question 4

Expected Knowledge

  • Includes everything from previous tasks.

  • Working with trees.

    • Storing and traversing trees.

    • Transforming trees.

  • Understanding hashmaps.

    • Solving tasks that require understanding the implementation of hashmaps.

  • Fundamentals of discrete mathematics.

  • Brute-force search.

    • Checking all possible solutions to find the optimal solution.

Can Include

  • Tasks that require noticing an application of a certain algorithm, data-structure or technique.

  • Optimizing some queries with the help of data structures like hashmaps or sets.

  • Algorithms on trees like finding the longest path of a tree.

Rules

Proctoring Rules

Proctoring Rules

Below is a screenshot of the general rules you will see once you have completed the Proctoring Setup. Please read through the rules below and note you will need to abide by each one in order for your test results to be certified.

Test Rules

After you have successfully setup proctoring, you will see a second set of rules before you are able to begin the test. You must check the box next to each statement to acknowledge your consent. You are also able to select your preferred coding language here. Note you can update the coding language directly in the IDE once in the exam.

General Coding Assessment Setup

Please note the test setup below.

You will have 70 minutes to complete the exam in one sitting. You are able to move between tasks, though you must submit your work before leaving a task in order for the code to save. You are allowed to submit solutions as much as needed. You will only be graded on your final submitted solution at the time you click Finish the Test. If you run out of time, your last submitted solution will be the one graded.

  • Additional clarifications to the rules:

    • Using scratch paper is allowed, but make it obvious (and maybe even say) that you're scribbling.

    • Using an off-screen whiteboard is allowed, but make it obvious that's what you're doing.

    • Recommend against referring to written notes since the proctor won't know what you're looking at.

      • Scan or take photos of your relevant notes so you can view them on-screen.

    • Prohibited: PythonTutor or any other external IDE, editor, debugger, or environment.

      • Exception: You may open a simple Python REPL in a terminal to quickly test commands or look up syntax.

Testing Link

  • SIGN IN WITH YOUR LAMBDASTUDENTS EMAIL! If you're not sure, go to your CodeSignal profile and make sure it's set as your primary email.

    • IF YOU DON'T, YOUR ATTEMPT WON'T COUNT!

  • There is a 2-week cooldown (measured down to the minute of your previous submission).

    • If this link fails, DM @Beej on Slack to get it updated.

See Also

After the test, you can share your certification directly with employers or add it to your LinkedIn profile! to learn how. (Note that this is optional).

Go to the and solve questions in The Core without looking up the answer. If you look up the answer, it doesn't count.

Head over to Leetcode and tackle the easy and medium problems, or problems on your site of choice.

Take the (24-hour cooldown).

When you start the General Coding Assessment, you are required to setup proctoring, which allows our team to verify the work was your own. To learn more about proctoring and the requirements, visit the . We also have a video resource which walks you through the .

Proctoringrules.png
GCArules.png

Through not rules, candidates frequently reach out regarding questions about the General Coding Assessment setup and structure. Below we will address the setup. You can learn more about the by viewing our separate help article.

GCAsetup.png
GCA_setup.PNG

including a link to the

@lambdastudents (Links to an external site.)
@lambdastudents (Links to an external site.)
@lambdastudents (Links to an external site.)
Click here (Links to an external site.)
CodeSignal Arcade
leetcode algorithms
GCA Practice Test
GCA Setup and Proctoring Rules
What is Proctoring article here
Certify proctoring steps here
structure of the General Coding Assessment
Take the GCA Now
What to Expect on the GCA
practice test
Lambda's GCA HOWTO and FAQ