C# Coding Specialist (CSCS) Certification
C# is a general-purpose, multi-paradigm programming language encompassing static typing, strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines.
The CSCS is a globally-recognized industry certification on C# programming, which grants coding specialists, software developers or engineers, game developers and IT professionals the ability to assess their knowledge and get credentials for their programming skills.
The unique peculiarity of the CSCS Certification is the assessment modality, which consists of a real live coding environment, offers candidates the ability to write proper code to perform tasks-based questions. This technology is called LITA (Live in the Application) and Knowledge Pillars is one of the very few organizations able to provide this very advanced assessment solution.
C# is highly versatile, and can be used to create a ton of projects, including but not limited to mobile apps, cloud-based services, enterprise software, and games. Lots and lots of games. It’s widely used in game development.
Number of questions: 35
Time limit: 50 minutes
Passing score: 75%
Format: Linear and Live-in-the-App
The examination procedure
The students will have to answer all the question within the given timeframe.
They are free to ignore as many questions as they want. They will have the option to flag the questions and then review them at the end of the test (within the 50 minutes timeframe). All unanswered questions will be marked as incorrect. When the test finishes the result of the examination is sent to KP’s server for storing. Exam results are sent to candidates within 72 hours.
Exam Objective Domains
Candidates for this exam are developers with at least one year of experience programming essential business logic for a variety of application types, hardware, and software platforms using C#.
Candidates should also have a thorough understanding of the following:
- Managing program flow and events
- Asynchronous programming and threading
- Data validation and working with data collections including LINQ
- Handling errors and exceptions
- Working with arrays and collections
- Working with variables, operators, and expressions
- Working with classes and methods
- Decision and iteration statements
- Manage Program Flow
Implement multithreading and asynchronous processing
Use the Task Parallel library, including theParallel.For method, PLINQ, Tasks; create continuation tasks; spawn threads by using ThreadPool; unblock the UI; use async and await keywords; manage data by using concurrent collections
Synchronize resources; implement locking; cancel a long-running task; implement thread-safe methods to handle race conditions
Implement program flow
Iterate across collection and array items; program decisions by using switch statements, if/then, and operators; evaluate expressions
Create and implement events and callbacks
Create event handlers; subscribe to and unsubscribe from events; use built-in delegate types to create events; create delegates; lambda expressions; anonymous methods
Implement exception handling
Handle exception types, including SQL exceptions, network exceptions, communication exceptions, network timeout exceptions; use catch statements; use base class of an exception; implement try-catch-finally blocks; throw exceptions; rethrow an exception; create custom exceptions; handle inner exceptions; handle aggregate exceptions
- Create and Use Types
Create value types, including structs and enum; create reference types, generic types, constructors, static variables, methods, classes, extension methods; create optional and named parameters; create indexed properties; create overloaded and overridden methods
Box or unbox to convert between value types; cast types; convert types; handle dynamic types; ensure interoperability with code that accesses COM APIs
Enforce encapsulation by using properties; enforce encapsulation by using accessors, including public, private, protected, and internal; enforce encapsulation by using explicit interface implementation
Create and implement a class hierarchy
Design and implement an interface; inherit from a base class; create and implement classes based on the IComparable, IEnumerable, IDisposable, and IUnknown interfaces
Find, execute, and create types at runtime by using reflection
Create and apply attributes; read attributes; generate code at runtime by using CodeDom and Lambda expressions; use types from the System.Reflection namespace, including Assembly, PropertyInfo, MethodInfo, Type
Manage the object life cycle
Manage unmanaged resources; implement IDisposable, including interaction with finalization; manage IDisposable by using the Using statement; manage finalization and garbage collection
Manipulate strings by using the StringBuilder, StringWriter, and StringReader classes; search strings; enumerate string methods; format strings; use string interpolation
- Debug Applications and Implement Security
Validate application input
Validate JSON data; choose the appropriate data collection type; manage data integrity; evaluate a regular expression to validate the input format; use built-in functions to validate data type and content
Perform symmetric and asymmetric encryption
Choose an appropriate encryption algorithm; manage and create certificates; implement key management; implement the System.Security namespace; hashing data; encrypt streams
Version assemblies; sign assemblies using strong names; implement side-by-side hosting; put an assembly in the global assembly cache; create a WinMD assembly
Debug an application
Create and manage preprocessor directives; choose an appropriate build type; manage program database files (debug symbols)
Implement diagnostics in an application
Implement logging and tracing; profiling applications; create and monitor performance counters; write to the event log
- Implement Data Access
Perform I/O operations
Read and write files and streams; read and write from the network by using classes in the System.Net namespace; implement asynchronous I/O operations
Retrieve data from a database; update data in a database; consume JSON and XML data; retrieve data by using web services
Query and manipulate data and objects by using LINQ
Query data by using operators, including projection, join, group, take, skip, aggregate; create method-based LINQ queries; query data by using query comprehension syntax; select data by using anonymous types; force execution of a query; read, filter, create, and modify data structures by using LINQ to XML
Serialize and deserialize data
Serialize and deserialize data by using binary serialization, custom serialization, XML Serializer, JSON Serializer, and Data Contract Serializer
Store data in and retrieve data from collections
Store and retrieve data by using dictionaries, arrays, lists, sets, and queues; choose a collection type; initialize a collection; add and remove items from a collection; use typed vs. non-typed collections; implement custom collections; implement collection interfaces
Participating in BETA Exams
A critical part of the exam development process is the beta exam. By taking the exam in its beta format, candidates provide us with useful information to evaluate the technical accuracy, relevance, and psychometric characteristics of the questions before we score examinees.
Get 80% off the CSCS beta exam. If you take the beta exam, Knowledge Pillars will send a 25% discount voucher to the same email that you use to register for exams AFTER the beta exam has been scored. You can apply that voucher to your next Knowledge Pillars exam registration.
Note Participation in the beta is on a first come, first served basis. Due to popular demand, we recommend that you register as soon as the beta registration period begins.
Candidates located in China, India, Pakistan, or Turkey are not eligible to participate in beta exams for security reasons.
Preparing for a beta exam
You will have access to the Exam Details page that lists the skills that will be assessed on the exam. Knowledge Pillars does not currently offer training materials for its exams.
People interested in beta exams usually have access to other resources, are experienced with the technology, or work with the beta product. We recommend that you consult peers, community resources, and early-adopter articles for support if you need additional preparation materials.
Beta exam scoring and results
When you complete a beta exam, you do not receive a score immediately because the scoring model for the exam is not yet finalized.
You usually receive your exam score within 2-3 weeks after the exam becomes available worldwide—this can be up to 16 weeks after you take the exam, depending on when in the beta period you took the exam. This time frame reflects the comprehensive process used to evaluate the beta exam results, including statistically analyzing the data to evaluate the performance of each question and reading and evaluating all comments provided during the beta exam. The rescore process starts on the day that exams go live, and final scores are released approximately 10 days later.
Note Participation in beta exams is voluntary, and Knowledge Pillars makes no promises or guarantees regarding the beta exam process, availability of your scores, or the timing of your results. Generally online proctored exam results are presented within 72 hours.
Passing the beta exam
Passing a beta exam in your certification exam counts toward your transcript. You do not need to retake the exam in its final version and you will receive a digital badge as confirmation of your passing score. Make sure that you take another exam within a year so you can take advantage of the 25% discount you earned for taking the beta exam through our beta exam discount program.
If you do not pass the beta exam, you cannot retake the beta exam. If you are interested in earning a certification that requires successful completion of that exam, you must wait to retake the exam at regular cost when it’s live, or you can apply the 25% discount that you received for taking the beta exam through our beta exam discount program.
The minimum system requirements are:
- Operating system: Windows 7/8/10 OS, MacOS X 10.0x or newer, Linux OS
- Minimum RAM: 1GB or more depending on the Operating System
- Minimum processor: 1.0 Ghz or more depending on the operating system and the architecture
- A color monitor with minimum display resolution: 1366px by 768px
- Internet access
- The latest version of the Chrome browser
- Automatic updates, notifications, other popup windows, and anything that can disrupt the examination process should be disabled
I am a C# developer, but I have never taken a certification because I sense that exams cannot assess my skills in a proper way. I am a creative person, I am not comfortable with a multiple or single choice format exam, where my theoretical knowledge is tested but not my actual ability to code. I am a successful professional and I feel I would like to show what I can do, rather than flagging in a question-based exam. Knowledge Pillars exams are different because I attempt it doing what I do best which is coding – I can show my practical knowledge and get certified, owning credentials that value my real competence on a global scale.
Give us your feedback!
If you’ve taken one of our exams, we want to hear from you!