The main thing in senior seminar is to review CS classes, and hopefully show a bit how they relate to each other, and become very brilliant so you will all score well on the Major Field Test. Taking the MFT is part of this class.
We will meet on Thurday chapel time. Each week we will review and discuss a particular topic, and work problems. We will also look over the problems on the MFT practice sheet from the ETS web site. There are only a few of these, so we'll work in a few more problems, here, there and everywhere. Here is a tentative list of topics.
Topic 1 | Intro Brief organizational meeting. |
Topic 2 | Complexity Big-O and all that. There's a nice review here, and again from our friends at Princeton. More formal treatment here. None of the questions on the practice sheet are specifically Big-O, though #7 is related. Number 11 on the second practice sheet is on topic. And, Here are some loops whose complexity you may cogitate. The various standard sorts are also worth thinking about. |
Topic 3 | Complexity, Continued Here is a double loop with O(n) |
Topic 4 | Trees Review material from CSc 216. There is some fine online material at Princeton on binary trees and balanced trees. Have a look at the exercises at the ends of the these pages and see if you can do them. We'll probably try some tree updates on the board, and look at problem 2 from the practice sheet. There is an interesting BST (and AVL) animation here. |
Topic 5 | More Trees |
Topic 6 | Sorting and searching Sorting algorithms, and searching other than binary trees: binary search and hashing. For review, we can again mooch from Princeton for sorting, and hashing, too. Look at the exercises for elementary, merge and quick sorts. We'll look at some of those and #7 on the practice sheet. |
Topic 7 | Programming and Program Semantics Of the practice problem., this would take in 1, 3, 6 and 11, which we'll discuss. Questions 3, 4 and 12 on the second practice sheet are also relevant. This is a broad topic, which includes general programming, data structure implementation and some PLS topics, such as type systems and memory use. Here are a few others to chew on. |
Topic 8 | Boolean Algebra and Logic From the practice sheet: numbers 8 and 15. Also these Boolean algebra problems. We'll also discuss some other topics related to logic circuits (314 material). |
Topic 9 | Grammars, Regular Expressions and Automata Princeton has a good discussion of regular languages and expressions. This has many good exercises, perhaps you might look at Exercise 5 (several parts), and Web Exercises 1–7, 9, 25–27, 27–43, 45. The practice sheet has questions 5 and 14, We'll spend less time on Grammars, and only context-free ones. You might look at these notes from a course at Stanford. Some standard CFG problems are to write CFGs to produce languages
|
Topic 10 | Discrete Math and Combinatorics We have #9 From the practice sheet, and this set. Perhaps I'll come up with more, and will always happily take suggestions. |
Topic 11 | Graph Theory There is #10 from practice sheet, and some nice notes: Notes from U of Waterloo, and the version with answers. |
Topic 12 | Computer Organization There question 4 from practice sheet, and 5 from the second practice sheet. I'll mention these, and talk a bit more about memory cache. I'll review some about CPUs, and also discuss some of the CPU performance problems linked here and here. (And anything else that looks good if there is time.) |
Topic 13 | Operating Systems We'll discuss questions 12 and 13 from practice sheet, discuss virtual memory and run some replacement algorithms, and whatever else seems to belong. I will not doubt make use of some of my posted 422 material. |
Topic 14 | Database Question 16 from practice sheet. Online class notes from Pit, RIT. Key Types Normal forms: here and here. |