Courseiva

200-901 · domain

Software Development and Design

This domain covers the software development and design fundamentals a network engineer needs on the 200-901 exam: Python data structures and control flow, reading and writing code, software architecture patterns, and REST API design conventions. Questions are scenario-based, asking you to pick the correct data type, predict program behavior, or choose the right HTTP status code for an API situation.

97 questions23 easy45 medium29 hard

Focused practice

Practice Software Development and Design questions

Scored sessions drawing only from this domain — pick a length below.

Start 20-question practice test →

What this domain covers

What to know about Software Development and Design

You must be able to read short Python snippets and predict their output, choose the right data structure for a task, identify architecture patterns like MVC, and map REST API situations to correct HTTP status codes. The single most important thing is knowing exactly when Python raises exceptions such as KeyError.

Python dictionaries, lists, sets, and tuples, including which operations raise KeyError or TypeError

Python functions, classes, modules, and file handling used to parse or generate device configuration

Software architecture patterns such as MVC, and the roles of model, view, and controller components

REST API design: HTTP methods, status codes, and JSON payloads for network automation calls

Watch out for

Common Software Development and Design exam traps

  • ▸Confusing a set with a list or dictionary: sets give fast membership tests and uniqueness, but are unordered and unindexed
  • ▸Assuming dictionary access is safe: indexing a missing key raises KeyError, while .get() returns None instead
  • ▸Mixing up HTTP status codes, such as returning 404 instead of 429 when a client exceeds an API rate limit

Question index

All Software Development and Design questions (97)

Click any question to see the full explanation, or start a practice session above.

1

In a microservices architecture, which communication pattern is typically asynchronous and decoupled?

Medium
2

Which Python exception would be raised by the following code? my_dict = {'a': 1} value = my_dict['b']

Hard
3

A developer is designing a Python application that must handle failures when making REST API calls to a Cisco DNA Center controller. The application should retry a failed request only if the HTTP status code indicates a server-side error (5xx) or a timeout occurs, but should not retry on client errors (4xx). The developer wants to implement this using a decorator. Which Python library provides a ready-to-use retry decorator that can be configured to retry on specific exceptions and HTTP status codes?

Hard
4

A developer is designing a Python script that needs to make multiple REST API calls to different endpoints sequentially. The script must handle the following requirements: (1) Use a variable timeout for each request, (2) Include an authorization token in every request, (3) Parse JSON responses. Which TWO features of the requests library should be used? (Choose two.)

Medium
5

A Python function needs to accept a variable number of keyword arguments. Which parameter syntax should be used?

Medium
6

A developer is implementing exception handling in Python for a function that makes an HTTP request. Which THREE exception types should be caught to handle common network and HTTP errors? (Choose three.)

Hard
7

A Python script is interacting with a REST API that returns JSON. The script needs to handle potential errors gracefully. Which TWO practices should be implemented? (Choose two.)

Medium
8

A developer is writing unit tests for a Python function that parses JSON responses from a Cisco Meraki API. The function takes a JSON string and returns a dictionary. The developer wants to follow best practices for unit testing. Which TWO of the following are recommended practices when writing these tests? (Choose two.)

Medium
9

Which Git command is used to switch to an existing branch named 'feature-x' and update the working directory?

Medium
10

Which HTTP status code indicates that a POST request successfully created a new resource?

Medium
11

What is the output of the following code? my_list = [1, 2, 3] for i in range(len(my_list)): my_list[i] += 1 print(my_list)

Easy
12

In a microservices architecture, which of the following is a key characteristic compared to a monolithic architecture?

Hard
13

In the context of REST API design, which HTTP status code should be returned when a client sends a request that exceeds the API rate limit?

Medium
14

A Python developer is working on a microservices project where one service needs to communicate with another service that exposes a GraphQL API. Which THREE statements about GraphQL compared to REST are accurate? (Choose three.)

Hard
15

A Python function is designed to fetch device data from multiple sources. It uses *args to accept variable number of API endpoints and **kwargs for optional parameters like timeout. Which function definition correctly implements this?

Medium
16

Given the following Python code snippet: with open('config.json', 'r') as f: data = json.load(f) print(data['interfaces'][0]['name']) What is the expected output if config.json contains {"interfaces": [{"name": "GigabitEthernet0/1"}]}?

Medium
17

In version control with Git, which command creates a new branch and switches to it in one step?

Medium
18

A Python script sends a PUT request to update a resource. The API returns a response with status code 204. What does this indicate?

Medium
19

Which THREE of the following are best practices when using Git for a collaborative project? (Choose three.)

Hard
20

Given the JSON string: '{"name": "Alice", "scores": [90, 85, 92]}', which Python code correctly extracts the second score (85)?

Medium
21

A Python function is defined as: def process(*args, **kwargs): return sum(args) + kwargs.get('offset', 0) What is the result of process(1, 2, 3, offset=10)?

Medium
22

Which HTTP status code indicates that a POST request successfully created a new resource on the server?

Medium
23

A developer is working on a Git repository and needs to temporarily save changes that are not ready to be committed so they can switch to another branch to fix a bug. Which Git command should the developer use to stash the current changes?

Easy
24

A developer is writing a Python script to iterate over a list of server hostnames. Which loop structure is most appropriate to process each hostname in the list?

Easy
25

A developer is using Git to contribute to a shared repository. After making several commits on a local feature branch, the developer wants to integrate the latest changes from the remote main branch into the feature branch while keeping a linear history. Which Git command should be used?

Easy
26

A developer is working on a Python script that performs CRUD operations on devices via a REST API. Which HTTP method should be used to update an existing device's configuration partially?

Easy
27

A developer needs to parse a JSON string received from a REST API into a Python dictionary. Which function should they use?

Medium
28

A developer is writing a Python function that accepts a list of interface names and returns a dictionary mapping each interface name to the number of characters in that name. The function should also verify that the input is a list and raise a TypeError otherwise. Which approach correctly implements the described behavior?

Medium
29

A developer is writing a Python unit test for a function that makes an HTTP request to an external API. To avoid network calls during testing, the developer wants to mock the requests.get function. Which Python library is specifically designed for mocking in unit tests and is part of the standard library?

Medium
30

A developer clones a shared repository and creates a feature branch, but a teammate pushes a commit to the main branch that conflicts with local edits. The developer wants to bring those upstream changes into the feature branch and resolve conflicts before opening a pull request. Which Git operation should be used?

Medium
31

A Python script uses a try/except block to handle API errors. If the API returns a 429 status code, which mechanism should the script implement to handle the error appropriately?

Hard
32

A developer is writing a Python function that accepts a variable number of interface names and returns them as a tuple. Which function definition correctly allows an arbitrary number of positional arguments?

Easy
33

A network engineer writes a Python script to handle exceptions when making REST API calls. Which exception type should be caught to handle network connectivity issues (e.g., DNS failure, refused connection)?

Medium
34

A network automation team is adopting Git for managing Python scripts and YAML device templates. They want a branching model where each new feature is developed in isolation and merged back into a shared integration branch before release. Which Git branching strategy best matches this requirement?

Easy
35

A developer is designing a microservices architecture for a network monitoring application. Which of the following is a key advantage of microservices over a monolithic architecture?

Medium
36

A developer is preparing a Python script that will be shared with a team and run in multiple environments. The script relies on several third-party libraries. Which TWO practices should be followed to ensure reproducible dependency management? (Choose two.)

Hard
37

A developer is working on a Python script that must read a JSON configuration file containing device credentials. The script needs to parse the file and access the value of the key 'username'. Which Python standard library module and function should be used?

Easy
38

A developer maintains a Python library that calls a REST API and currently stores the API token in a module-level constant. The team wants to follow twelve-factor app principles so the same build artifact can be deployed to lab and production without code changes. Which change should the developer make?

Hard
39

In software architecture, which pattern separates an application into three interconnected components: Model (data), View (UI), and Controller (input logic)?

Medium
40

A developer uses the requests library to call an API. The API returns 429 Too Many Requests. What is the best practice to handle this?

Hard
41

A developer is writing a Python script that uses the requests library to call a REST API. The API occasionally returns a 429 status code. Which approach best handles this situation?

Hard
42

A developer needs to update an existing resource via a REST API. The update should be partial, meaning only the fields provided in the request body should be changed. Which HTTP method should be used?

Medium
43

A developer is building a Python script that calls a REST API which returns a JSON payload containing a list of interfaces. The script must parse the response and extract the 'name' field from each interface object. Which approach correctly uses the requests library to parse the JSON and iterate over the interfaces?

Medium
44

A developer is writing unit tests for a Python function that interacts with a REST API. Which TWO practices are recommended to ensure tests are reliable and isolated? (Choose two.)

Hard
45

Which Git branching strategy typically involves a long-lived 'develop' branch where feature branches are merged, and releases are created from a 'release' branch?

Medium
46

A developer is preparing a Python script that authenticates to a Cisco DNA Center controller, retrieves a list of network devices, and writes the inventory into a reusable module consumed by other teams. The team lead requires that the credentials never be stored in the source code. Which TWO practices satisfy that requirement? (Choose two.)

Hard
47

A developer is using Git for version control in a collaborative project and wants to ensure a clean, linear history. Which TWO practices help achieve a linear commit history? (Choose two.)

Medium
48

A developer is preparing a Python script that will be committed to a shared Git repository used by a team of network automation engineers. The team wants to ensure that sensitive credentials and environment-specific files are never committed. Which TWO actions should the developer take? (Choose two.)

Hard
49

A developer maintains a Python package that other teams import. The package's setup.py currently pins an HTTP library to an exact version, and a consuming team reports that pip refuses to install their project because they require a newer minor release of the same library. Which change to the dependency specification best resolves the conflict while still protecting against breaking major upgrades?

Hard
50

What does the Git command 'git log --oneline' display?

Easy
51

A developer is writing unit tests for a Python function that parses Cisco IOS configuration text and returns a dictionary of interfaces. The function relies on an external file read. Which TWO practices improve the testability and reliability of these unit tests? (Choose two.)

Hard
52

A developer is building a Python function that must parse a JSON payload returned by a Cisco DNA Center API. The function needs to gracefully handle cases where the JSON is malformed or the response body is empty, without crashing the calling script. Which approach best meets this requirement?

Medium
53

A team is containerizing a Python API service so it can run identically on developer laptops and in production. Which TWO practices support reproducible, portable container images for this service? (Choose two.)

Hard
54

A developer writes a Python script to read a configuration file. Which code snippet correctly opens the file 'config.json' for reading and ensures the file is closed after use?

Easy
55

Which Python list comprehension correctly creates a list of squares for even numbers from 0 to 10?

Medium
56

A developer is building a REST API client in Python using the requests library. They need to send a JSON payload with authentication. Which code snippet correctly sends a POST request with a JSON body and a Bearer token?

Medium
57

A developer is preparing to add a new feature to a shared Git repository. The team uses a workflow where each feature is developed on its own branch and then merged back into the main branch through a pull request. Which Git operation should the developer perform first to begin work on the new feature?

Easy
58

A developer wants to process a list of server hostnames and create a new list containing only hostnames that start with 'web'. Which Python list comprehension correctly accomplishes this?

Easy
59

A developer is preparing a Python application that reads the API base URL and an API token from the environment. The developer wants to avoid hard-coding credentials and intends to deploy the same artifact to a lab and a production environment. Which approach should be used?

Medium
60

Which TWO of the following are valid branching strategies in Git? (Choose two.)

Medium
61

A developer is writing a Python script that must process a large list of network device hostnames. The script needs to read each hostname, perform a blocking SSH operation, and then move to the next hostname. The developer wants to make the code more efficient by using a generator function to yield hostnames one at a time instead of loading the entire list into memory. Which Python construct should the developer use to define this generator?

Medium
62

A developer is designing a microservices-based network management system. One requirement is that when a new device is discovered, multiple other services must be notified asynchronously to perform tasks like inventory update, monitoring setup, and log collection. Which architectural pattern best fits this requirement?

Hard
63

Which THREE of the following are characteristics of GraphQL compared to REST? (Choose three.)

Hard
64

A developer is building a Python application that must handle configuration data in multiple formats (JSON, YAML, XML) and provide a consistent interface for reading and writing. The application may add new formats later. Which design pattern best supports this extensibility while keeping the client code decoupled from concrete implementations?

Hard
65

A developer is troubleshooting a Python function that parses device configuration returned by a REST API. The function receives a JSON string and must convert it into native Python dictionaries and lists before iterating over the device entries. Which standard-library approach performs that conversion?

Easy
66

A developer is reviewing a colleague's pull request that adds a function to a shared Python utility module. The function must return the value of a REST API response, but the reviewer notices the function currently prints the parsed response instead of returning it. Which change makes the function usable by callers that need to process the data further?

Medium
67

A developer needs to read a JSON configuration file and parse it into a Python dictionary. The file contains nested objects. Which code snippet correctly accomplishes this?

Medium
68

In Python, which data type is used to represent an unordered collection of unique elements?

Easy
69

In Python, which of the following is a valid way to define a function that accepts a variable number of positional arguments?

Easy
70

A developer is refactoring a Python module that currently has a single 400-line function named process_orders(). The function mixes validation, database writes, and email notification logic. The team wants to improve testability and reuse. Which software design approach should be applied first?

Medium
71

When using the requests library in Python to send a POST request, which parameter should be used to send a JSON payload in the request body?

Easy
72

Which HTTP status code indicates a successful POST request that created a resource?

Easy
73

A developer is building a Python script that processes a list of network devices. Each device is represented as a dictionary with keys 'hostname' and 'ip'. The script must create a new list containing only the hostnames of devices whose IP address starts with '10.'. Which Python construct best accomplishes this in a single expression?

Medium
74

Which Git command is used to create a new branch and switch to it in one step?

Medium
75

A developer is working on a Git repository and needs to temporarily save changes that are not ready to be committed, switch to another branch to fix a bug, and then return to the original branch and reapply the saved changes. Which Git command should be used to accomplish this?

Medium
76

A Python script uses the 'requests' library to make a POST request to create a new resource. Which HTTP status code indicates successful creation?

Easy
77

Which THREE statements about RESTful APIs are true?

Hard
78

A developer is designing a Python script that must authenticate to a Cisco Meraki API using an API key. The key should not be hardcoded in the script. Which method is most secure for managing the API key?

Medium
79

Which THREE of the following are benefits of using event-driven architecture in a distributed system? (Choose three.)

Hard
80

Which TWO HTTP status codes indicate client errors?

Medium
81

A developer is creating a Python function that must parse a JSON response from a Cisco DNA Center API. The function should handle cases where a key may be missing without crashing. Which approach best achieves this?

Medium
82

A developer needs to create a Python script that makes a GET request to a REST API to retrieve a list of network devices. The API uses query parameters to filter by device type and status. Which TWO code snippets correctly include query parameters using the requests library? (Choose two.)

Easy
83

A network automation script uses the requests library to retrieve device information from a REST API. The API requires authentication via a bearer token. Which code example correctly sets the Authorization header?

Medium
84

A developer is writing a Python script that processes a large CSV file. The script uses 'with open(file, 'r') as f' to read the file. Why is this approach preferred over calling f = open(file) and then f.close()?

Hard
85

A developer is designing a Python class to model a network device. The class should prevent direct modification of the device's IP address after it is set, while still allowing the address to be read. Which implementation achieves this encapsulation requirement?

Hard
86

A developer is writing a Python unit test for a function that parses interface status from a network device. The function raises a custom exception called InterfaceDownError when an interface is administratively down. Which unittest assertion correctly verifies that calling parse_interface('down') raises InterfaceDownError?

Medium
87

Which TWO statements about the MVC pattern are correct? (Choose two.)

Medium
88

Which data structure in Python would be most appropriate for storing a collection of unique items and performing fast membership tests?

Easy
89

A developer is building a Python client that calls a REST API returning JSON. The client must detect authentication failures, rate limiting, and server errors so it can retry or alert appropriately. Which coding practice should be applied?

Hard
90

A developer is reviewing a Python script that makes a REST API call using the requests library. The script must set a custom HTTP header 'X-Auth-Token' with a value from an environment variable. Which code snippet correctly adds this header to the request?

Easy
91

A Python script uses a dictionary to store device configuration parameters. Which key, if any, will raise a KeyError if it does not exist in the dictionary?

Easy
92

In the MVC (Model-View-Controller) pattern, which component is responsible for handling user input and updating the model?

Hard
93

A developer is writing unit tests for a Python module that parses show command output from network devices. The tests must be deterministic and must not depend on real devices or the network. Which TWO practices should the developer apply? (Choose two.)

Hard
94

A developer needs to create a Python function that accepts any number of keyword arguments and prints them. Which function definition correctly uses **kwargs?

Medium
95

In a microservices architecture, which of the following is a primary advantage over a monolithic architecture?

Hard
96

A developer is using Git to manage a project. They need to temporarily save changes that are not ready to be committed so they can switch to another branch. Which Git command should they use?

Easy
97

Given the Python list comprehension: result = [x*2 for x in range(10) if x > 5] What is the value of result?

Hard

Frequently asked questions

What does the Software Development and Design domain cover on the 200-901 exam?
You must be able to read short Python snippets and predict their output, choose the right data structure for a task, identify architecture patterns like MVC, and map REST API situations to correct HTTP status codes. The single most important thing is knowing exactly when Python raises exceptions such as KeyError.
How many questions are in this domain?
This page lists all 97 Software Development and Design questions in the 200-901 question bank. The actual exam draws from this domain proportionally to its weighting in the official exam blueprint.
What is the best way to practise this domain?
Start with a short focused session (10 questions) to identify gaps, then work through explanations. Repeat with a longer session once the weak areas feel solid.
Can I practise only Software Development and Design questions?
Yes — the session launcher on this page filters questions to this domain only. Choose any session length for inline explanations and scoring.
cisco-devnet-associate CISCO-DEVNET-ASSOCIATE devnet software dev Practice Questions