TOPICS FOR THE COP 3223H EXAM on Python Programming $Date: 2019/02/21 18:27:01 $ This exam covers topics from homeworks 3-4. It is related to the course outcome [Programming]. REMINDERS For this exam you are permitted one page of notes. It is a good idea to condense your notes into a small amount of ready reference material. If you need more space, use the back of a page. Note when you do that on the front. Before you begin, please take a moment to look over the entire test so that you can budget your time. Clarity is important; if your answers are sloppy and hard to read, you may lose some points. READINGS We recommend reading the materials referred to in the course syllabus. In particular the following: * Arup Guha. Programming Knights: An Introduction to Computer Programming in Python and C, Pearson Learning Solutions, 2013. Chapters 1, 2.1, 4.1-4.2. * Gary T. Leavens. Following the Grammar with Python, University of Central Florida, Dept. of Computer Science, CS-TR-17-01, February 2017. http://www.eecs.ucf.edu/~leavens/COP3223H/docs/follow-grammar-python.pdf * See also the code examples page: http://www.cs.ucf.edu/~leavens/COP3223H/examples/index.html Note that you can start by looking at a test file (test_f.py) and then program the function (f) yourself for practice. If you have time, you might also read * C. H. Swaroop. A Byte of Python, version 4.0, January 2016. Online at https://python.swaroopch.com/, up to the chapter on functions. * Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. How to Think Like a Computer Scientist, version of October 2012. Online at: http://openbookproject.net/thinkcs/python/english3e/index.html, chapters 1-5 TOPICS In the following, I use + to denote relatively more important topics, and - to denote relatively less important topics. Topics marked with ++ are almost certain to be on the exam. All of these are fair game, but if you have limited time, concentrate on the ones that are more important first (and in those, the ones you are most uncertain about). SKILLS [Programming] ++ Write a Python function to recursively compute a function over LispLists. (HW3: sub_from_each, deleteEach, deleteFirst, insertAfter, countEqual, superseteq) + Write a function that manipulates each element of a LispList in the same way (HW3: sub_from_each) + Write a function that inserts or deletes elements of a LispList (HW3: deleteEach, deleteFirst) + Write a function that reduces the elements of a LispList to a number or some other data (HW3: countEqual) ++ Write a Python function that computes a function using loops (HW4: dot_product_*, graph, approxDerivAt) CONCEPTS [Semantics] In addition to the Python basic semantics (see the study guide for exam 1), you should understand the following concepts and terms and be able to use them in solving problems. ++ following the grammar for LispList - following the grammar for other types of data (other than LispList) ++ LispLists type and its constructors and methods ++ Recursive functions + if-statements ++ while loops ++ for loops + break and continue statements - Application Programming Interface (API) + Python lists + Python sequences (range, list, strings) + slices of sequences + immutable vs. mutable data + addressing elements of a Python sequence