CS121 Midterm Study Guide. Midterm exam is composed of writing test and programming test. Writing test is close-book while programming test is open-book. The whole test should be f... CS121 Midterm Study Guide. Midterm exam is composed of writing test and programming test. Writing test is close-book while programming test is open-book. The whole test should be finished within 2 hours with one sitting. You can bring in a cheating sheet using both sides. Chapter 1 Introduction Review Zybook 1.2, 1.3, 1.4, and 1.6. Key concepts are: Python interpreter, Comments, #, Input/output functions, Type of program errors: syntax errors, runtime errors, and logic errors, Understand the concepts of processors, memory, compilers/interpreters, machine instructions, and high-level languages. Compilers/interpreters are programs that translate high-level language programs to executable programs. Chapter 2 Variables and Expressions Review lecture PPTs of chapter 2, and Zybook 2.1 - 2.10. Key concepts: Variables and assignment operator =, Rules to name Python identifiers: letters, digits, and _, What are objects, name binding, and properties of objects, Floating-point numbers, what is an overflow, how to control decimal places, Unicode for character representation, ord() and chr() functions, Escape sequences, Arithmetic expressions, and precedence rules of arithmetic operators, Division, floor division, modulo, Shorthand operators: +=, /=, *=, -=, Math module, import statement. Chapter 3 Types Review PPTs and Zybook 3.1—3.9. Key concepts: String basics: index for string characters starts from 0, strings are immutable, string concatenation (+). str = ‘Monday’, str[0] returns ‘M’, List basics: index for list elements starts from 0; lists are mutable; syntax for list definition: student_names = [‘Jim’, ‘Peter’, ‘Katie’] student_names[1] returns ‘Peter’, Functions that manipulate a list: list.append(value), list.pop(i), list.remove(v). Pay attention to the different argument meanings of the above functions. Tuple basics: index for tuple elements starts from 0; tuples are immutable; syntax for tuple definition uses (), not []: student_names = (‘Jim’, ‘Peter’, ‘Katie’). student_names[1] returns ‘Peter’, Namedtuple module can be imported to define a new simple data type that consists of multiple attributes. Check the Car example. Set basics: No index for set elements, since a set is unordered. sets are mutable; set elements are unique; syntax for set definition: nums = set ( [1, 2, 3] ), or nums = {1, 2, 3} create the same set. Set manipulation functions: add, remove, pop, clear, update, len (len function is available for all sequence types). Between-set operations: intersection, union, difference, symmetric_difference. Dictionary basics: describing the associative relationships between keys and values. No index for dictionary elements; mutable; syntax for dictionary: prices = {'apples':1.99,'oranges':0.99, 'banana':0.49} print(prices['apples']). How to add a new entry, modify existing entries, and remove entries. Type conversions: implicit and explicit (int(), float(), str()). Binary number and decimal number conversion. String formatting: print(f’...{var:X}...’). Chapter 4 Branching Review the lecture PPTs and Zybook 4.1—4.12. PPT Chap04_1 and Chapt04_2: If statement, if-else statement, multi-branch if-else statement, nested if-else statement, Detecting ranges: continuous range and range with gaps, Relational operators and logical operators, Distinct if statements vs. grouped if statements, Student grade example and exact change example, How to compare different data types: int, float, strings (what is the order between strings?), How to compare two lists/tuples? Which is bigger? How to compare two dicts? Only equal or not, cannot decide order. PPT Chap04_3: Membership and identity operators (in/not in, is/is not). Example w = 500 x = 500 + 500 # Create a new object with value 1000 y = w + w # Create a second object with value 1000 z = x # Bind z to the same object as x if z is x: print('z and x are bound to the same object’) if z is not y: print('z and y are NOT bound to the same object'). Order of evaluation (arithmetic>relational>logical>assignment). Code blocks and indentation. Conditional expressions: exp1 if condition else exp2. Chapter 5 Loops Review the lecture PPTs and Zybook 5.1—5.8. While loops and for loops. When to use which? Do you know number of iterations before entering the loop? Infinite loops. Sentinel values: the user can enter an arbitrary number of input until a sentinel value is entered. random module: random.randint(0,2) returns a random number in the range [0, 2]. range() function: return a list of integers not including the end value. Nested loops, challenge activity 5.8.3.
Understand the Problem
The question provides a comprehensive study guide summarizing key concepts and topics to review for the CS121 Midterm exam. It outlines specific chapters and key points from lectures and the Zybook that students need to focus on, touching on various programming concepts in Python, including the use of variables, data types, branching, and loops. It serves as a checklist for study preparation.
Answer
Answer for screen readers
AI-generated content may contain errors. Please verify critical information