The final exam is comprehensive will cover all material from the beginning of the semester through the end but with some emphasis on material covered since Test 2. The final is more comprehensive than Test 2 was. This material includes everything discussed in lectures and covered in assignments, and aligns with chapters 1-10 from the recommended text. We have covered some additional topics (including concurrency, structural pattern matching, data, visualization, and machine learning) the text has not, and we did not specifically cover the data science additions to each chapter although some overlap with the last weeks of the course. Because this is a programming principles course, there will be questions related to principles as well as questions that involve syntax. You may be asked to write, analyze, and/or debug code.