Course Info

\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors) \newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx \newcommand\unit[1]{\mathrm{#1}} \newcommand\num[1]{#1} \newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/} \newcommand\squared{{}^2} % % Scale \newcommand\milli{\unit{m}} \newcommand\centi{\unit{c}} \newcommand\kilo{\unit{k}} \newcommand\mega{\unit{M}} % % Angle \newcommand\radian{\unit{rad}} \newcommand\degree{\unit{{}^\circ}} % % Time \newcommand\second{\unit{s}} % % Distance \newcommand\meter{\unit{m}} \newcommand\m{\meter} \newcommand\inch{\unit{in}} \newcommand\feet{\unit{ft}} \newcommand\mile{\unit{mi}} \newcommand\mi{\mile} % % Volume \newcommand\gallon{\unit{gal}} % % Mass \newcommand\gram{\unit{g}} \newcommand\g{\gram} % % Frequency \newcommand\hertz{\unit{Hz}} \newcommand\rpm{\unit{rpm}} % % Voltage \newcommand\volt{\unit{V}} \newcommand\V{\volt} \newcommand\millivolt{\milli\volt} \newcommand\mV{\milli\volt} \newcommand\kilovolt{\kilo\volt} \newcommand\kV{\kilo\volt} % % Current \newcommand\ampere{\unit{A}} \newcommand\A{\ampere} \newcommand\milliampereA{\milli\ampere} \newcommand\mA{\milli\ampere} \newcommand\kiloampereA{\kilo\ampere} \newcommand\kA{\kilo\ampere} % % Resistance \newcommand\ohm{\Omega} \newcommand\milliohm{\milli\ohm} \newcommand\kiloohm{\kilo\ohm} % correct SI spelling \newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx \newcommand\megaohm{\mega\ohm} % correct SI spelling \newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx % % Inductance \newcommand\henry{\unit{H}} \newcommand\H{\henry} \newcommand\millihenry{\milli\henry} \newcommand\mH{\milli\henry} % % Temperature \newcommand\celsius{\unit{^{\circ}C}} \newcommand\C{\unit{\celsius}} \newcommand\fahrenheit{\unit{^{\circ}F}} \newcommand\F{\unit{\fahrenheit}} \newcommand\kelvin{\unit{\K}} \newcommand\K{\unit{\kelvin}}\\% Power \newcommand\watt{\unit{W}} \newcommand\W{\watt} \newcommand\milliwatt{\milli\watt} \newcommand\mW{\milli\watt} \newcommand\kilowatt{\kilo\watt} \newcommand\kW{\kilo\watt} % % Torque \newcommand\ozin{\unit{oz}\text{-}\unit{in}} \newcommand\newtonmeter{\unit{N\text{-}m}}\end{aligned}\end{align} \]

Apr 16, 2025 | 212 words | 2 min read

9.2.3. Course Info#

Instructions#

Write a function named get_course_data that creates and returns a nested dictionary containing the course information shown in Table 9.5. The outer dictionary should have a key for each course number. The values associated with each course number in the outer dictionary should be an inner dictionary with the keys: room, instructor, and time, and with values as listed in the table.

Table 9.5 Fake course data.#

Number

Room

Instructor

Time

CS101

1461

Django

9:00 a.m.

CS102

4815

Idle

11:00 a.m.

AB203

3634

Rich

10:00 a.m.

NT110

1188

Marshal

2:00 p.m.

CM241

2451

Pickle

12:00 p.m.

Next write the program’s main function so that it lets the user enter a course number, and then displays that course’s instructor, room number, and meeting time. If the course number entered is not in the dictionary, the program should report it as an invalid course number.

Sample Output#

Use the values in Table 9.6 below to test your program.

Table 9.6 Test Cases#

Case

Course

1

CS102

2

CS201

Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.

Case 1 Sample Output

$ python3 course_info_login.py Enter a course number: CS102 The details for course CS102 are: Instructor: Idle Room: 4815 Time: 11:00 a.m.

Case 2 Sample Output

$ python3 course_info_login.py Enter a course number: CS201 CS201 is an invalid course number.

Deliverables#

Save your finished program as course_info_login.py, replacing login with your Purdue login. Then submit it along with all the deliverables listed in Table 9.7 below.

Table 9.7 Deliverables#

Deliverable

Description

course_info_login.py

Your finished program.

Screenshot(s)

PNG(s) capturing both test cases.