Computer Science 1 - Csci 1100 Fall Semester, 2013-2014 Final Exam Overview and Practice Questions
This document provides an overview and practice questions for the final exam for Computer Science 1. It outlines the exam date, times, and locations. It provides information on what material will be covered, what students can bring to the exam, and where to find prior practice problems and solutions. It includes 9 practice problems covering topics like merging sorted lists, analyzing test score ranges, finding the closest set of values in a list, debugging recursive functions, set operations on club membership dictionaries, string formatting, and parsing a multi-line address file.
Computer Science 1 - Csci 1100 Fall Semester, 2013-2014 Final Exam Overview and Practice Questions
This document provides an overview and practice questions for the final exam for Computer Science 1. It outlines the exam date, times, and locations. It provides information on what material will be covered, what students can bring to the exam, and where to find prior practice problems and solutions. It includes 9 practice problems covering topics like merging sorted lists, analyzing test score ranges, finding the closest set of values in a list, debugging recursive functions, set operations on club membership dictionaries, string formatting, and parsing a multi-line address file.
Final Exam Overview and Practice Questions Overview The nal exam will be held Friday, December 13, 2013 from 3-5 pm. Note that this will be a two-hour exam. You are assigned to the following locations according to your sections. Darrin 308: Sections 1,2 (Aritra), 3,9 (Max), 4,12 (Hendrik), 5,11 (Matt Ferritto). West Hall Auditorium: Sections 6,8 (Jason), Sections 7,10 (Scott), Sections 13,14 (Matt Peveler), Section 15 (Dean) Students who have provided Prof. Stewart with an accommodation letter and therefore require extra time will take the test 3-6 pm in Amos Eaton 215. Check your grades on LMS! Report any mistakes immediately to your lab TA. Exam coverage is the entire semester, except for the following: Tkinter, Twitter, and images. Please review lecture notes, class exercises, labs, homework, practice programs, and tests, working through problems on your own before looking at the solutions. Each student may bring a one-page, double-sided, 8.5x11 crib sheet to the test. Please refer back to the Test 1 and Test 2 practice problems for further instructions. There will be a review session Tuesday, December 10, 3-5 pm in DCC 324. This will be a question- and-answer session, so bring your questions! What follows are a few additional practice problems. These are by no means comprehensive, so rework problems from earlier in the semester. Solutions will be posted by Monday, December 9. Questions 1. Write a version of merge that does all of the work inside the while loop and does not use the extend. 2. Using what you learned from writing the solution to the previous problem, write a function to merge three sorted lists. For example print three_way_merge( [2,3, 4,4, 4, 5], [1, 5, 6, 9], [ 6, 9, 13] ) Should output [1, 2, 3, 4, 4, 4, 5, 5, 6, 6, 9, 9, 13] 3. Given a list of test scores, where the maximum score is 100, write code that prints the number of scores that are in the range 0-9, 10-19, 20-29, ... 80-89, 90-100. Try to think of several ways to do this. Outline test cases you should add. For example, given the list of scores [ 12, 90, 100, 52, 56, 76, 92, 83, 39, 77, 73, 70, 80 ] The output should be something like [0,9]: 0 [10,19]: 1 [20,29]: 0 [30,39]: 1 [40,49]: 0 [50,59]: 2 [60,69]: 0 [70,79]: 4 [80,89]: 2 [90,100]: 3 4. Given a list of oating point values containing at least 10 values, how do you nd the 10 values that are closest to each other? In other words, nd the smallest interval that contains 10 values. By denition the minimum and maximum of this interval will be values in the original list. These two values and the 8 inbetween constitute the desired answer. This is a bit of a challenging variation on Lab 12. Start by outlining your approach. Outline the test cases. For example, given the list v = [ 1.2, 5.3, 1.1, 8.7, 9.5, 11.1, 2.5, 3, 12.2, 8.8, 6.9, 7.4,\ 0.1, 7.7, 9.3, 10.1, 17, 1.1 ] The list of the closest 10 should be [6.9, 7.4, 7.7, 8.7, 8.8, 9.3, 9.5, 10.1, 11.1, 12.2] 5. Consider the following recursive function: def mystery( L, v ): if v < len(L): x = L[v] mystery( L, x ) print x else: print v (a) Show the output from the call: mystery( [2, 5, 4, 7, 1], 0 ) 2 (b) Write a Python call to the function mystery containing a list and an index that causes the recursion to never stop (until the stack overows). Do this with as short a list as you possibly can. (c) Write a Python call to the function mystery that causes the program to crash (without the problem of innite recursion): 6. You are given the following function denition. def f(x, y, z = 0, w = False): count = 0 for item in x: if w and (item+z in y): count += 1 if count == len(x): return True elif count == len(y): return False For each of the following assertions, write down whether they will fail or pass, and, for the failures, indicate what is returned by f. def test1(): assert f([1,2,3], [4,6,8,5,11], 3, True) == True def test2(): assert f([1,2,3,4,5], [0,2,6], -1, True) == False def test3(): assert f([1,2,3,4,5], [2,3,4]) == False def test4(): assert f([5,4,5,8], [6,7,8,9,10,12], 2, True) == False 7. You are given a dictionary called clubs where each key is the name of a club (a string), and each value is the set of id strings for the students in the club. Write a segment of Python code that creates a set of all student ids (if any) that are in all the clubs in the dictionary. 8. Write a function called framed that takes a string storing a name and creates output with a framed, centered greeting. For example, if the name string is 'Tim' the output should be ********** * Hello! * * Tim * ********** and if the name string is 'Anderson' the output should be ************ * Hello! * * Anderson * ************ 9. Consider a le called addresses.txt that contains a name and an address on each line of the le. The parts of each name and address are separated by a '|'. For example, John Q. Public | 1313 Mockingbird Way | Walla Walla, Washington 98765 Samuel Adams | 1431 Patriot Lane | Apartment 6 | Washington, Oregon 12345 Dale President | 1600 Pennsylvania Ave. | Washington, D.C. 234781 Thomas Washingon | 153 Washington Street | Anywhere, Anystate 53535 3 Notice there is a variable number of '|' in each line, and the string "Washington" appears in many places. Fortunately, the input that follows the last '|' on each line is in the form City, State Zip-code, and there are no commas in the name of the City. Write a function that is passed the name of a city and returns the number of people stored addresses.txt that live in the given city. For the above version of addresses.txt and for the city Washington, the function should return the value 2. 4