首页 > > 详细

讲解 ICS 33 - Assignment 3 - Reinforcement辅导 Python编程

ICS 33 - Assignment 3 - Reinforcement

Due: Friday, August 16, 2025 @ 11:59pm

Submit via Gradescope:

query_tools .py (autograded)

query_analysis .pdf (manually graded)

Summary

This assignment reinforces your skills in:

SQL query writing

●    Python comprehensions

●   Custom iterators using the iteration protocol Generator functions and lazy evaluation

Generative AI Extra Credit

Use of gen AI: You may use generative AI (gen AI) to help you (e.g., ChatGPT or Copilot), but you must include (1) all prompts and outputs provided by the gen AI and (2) any modifications you made to the resulting outputs provided and why you modified the outputs as such. This policy allows us to understand (1) how you are using gen AI and (2) help you use it more effectively, so as to demonstrate to others (e.g., future or possible employers)    that you are adding value beyond the gen AI itself (e.g., you are worth hiring as a junior developer rather than having a senior developer just use the gen AI and not hire a junior developer). To encourage the submission of such gen AI-oriented materials, submitting this information in a file called genai_io .pdf will earn you up to 3 points of extra credit. We will grade that file on the quality of your prompts, the sensibility of the modifications to outputs, and the reasoning behind those modifications. Note that code generated using the current state-of-the-art generative AI has a strong tendency to be overly verbose and hallucinate, so we will be checking for such properties and others when evaluating quality and sensibility. Avoid just prompting and re-prompting generative AI without understanding the output. We will discuss strategies to assist you with this as we progress through the lectures.

We will also be using tools to detect your use of generative AI, so if we have strong suspicions that you have used generative AI without following the policy specified above, you may face a severe penalty, including failing the assignment or having your incident reported to the UCI Office of Academic Integrity & Student Conduct (OAISC), which may lead to suspension or dismissal/expulsion.

What You Will Submit

File

Purpose

Grading

Points

query_tools .py

Python code and SQL query strings

Autograded

90

query_analysis .pdf

Written SQL queries and lazy explanation

Manually graded

10

Use the provided query_analysis_template .docx to complete your PDF.

Problems

1a. SQL Query (15 points)

Write a SQL query to return the names of all employees in the  'engineering ' department who earn more than $85,000, sorted by salary descending.

●   Write this query as a Python string in query_1a in query_tools .py

●   Also, copy this query into your PDF submission (query_analysis .pdf)

1b. SQL Query (15 points)

Write a SQL query to return the average salary of employees whose job title contains the word 'Senior '. Round the result to two decimal places.

●   Write this query as a Python string in query_1b in query_tools .py

●   Also, copy this query into your PDF submission (query_analysis .pdf)

2. Comprehensions (15 points)

Implement the following functions in query_tools .py. Each must consist of a single return statement using a comprehension:

python

def extract_ids_above_threshold(records, threshold): """Returns a list of IDs of employees whose salary exceeds the threshold."""

python

def project_department_counts(records): """Returns a dictionary mapping each department to its employee count."""

You can assume records  as a dictionary consisting of the information from employees

3. Custom Iterator (12 points)

Implement the class SalaryStepper:

python

class SalaryStepper: def __init__(self, start, stop, step=5000): ... def __iter__(self): ... def __next__(self): ...

This class should yield salary values starting at start, stopping before stop, and incremented by step.

Example:

python

list(SalaryStepper(80000, 90000)) # ➞ [80000, 85000]

4. Generator with Lazy Filtering (21 points)

Implement the generator function filtered_names ( records ) that yields names of employees who:

●   Work in the  'engineering ' department

Have names starting with  'J '

●    Have a salary greater than or equal to (>=) $90,000

You must implement this lazily, using yield or generator expressions. Do not use intermediate lists.

5. Lazy Evaluation Explanation (10 points)

In query_analysis .pdf, explain why and how your implementation of filtered_names () is lazy, and what the benefit is.

Your answer must be 3–5 sentences

●    Focus on concepts from the lecture: memory efficiency, searching, etc.






联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!