This is a past course that has already concluded. If you are looking for a current course, please click here.
Welcome to Principles of Computer Science! For course info and policies, please see the syllabus. For grades, log into Moodle.
Prof. Wright's office hours: Mon. 12:45–1:45, Wed. 9–10, Thurs. 10–11 & 1–2, Fri. 12:45–1:45, or by appointment in RMS 409
Supplemental Instruction (SI): Sun. 4:00–5:00pm, Tues. 3:00–4:00pm, Thurs. 7:00–8:00pm in RNS 203
Homework help sessions: Sun. 7:00–8:00pm, Tues. 7:00–8:00pm, Thurs. 9:00–10:00pm in RNS 203
Final Exam Information
The exam will be Thursday, May 18, at 9:00am.
The exam will contain a mix of conceptual questions and questions that ask you to write code. This will be a paper exam. Computers, calculators, phones, reference materials, and other similar things are not allowed during the exam.
The following is a list of topics to review for the midterm exam. This list is not guaranteed to be exhaustive, but should be a good guide to help you study.
From the Interactive Python Text
Review the chapters that we have studied and the comprehension questions that are embedded in the text. Study the terminology in the Glossary sections in each chapter that we have studied. The exercises at the end of each chapter are good practice.
In particular, pay attention to the following:
- Basic Python expressions, syntax, data types, operators (+, -, *, /, **, //, %)
- Types of errors: syntax, runtime, semantic
- The import and its use with standard packages such as math, random, and turtle
- Functions: definitions, arguments, return values, usage
- Built-in Python3 functions input(), print(), len(), int(), str(), float(), list(), open()
- Selection: Boolean values, logical operators, if, else, elif
- Iteration: for loops, while loops, the accumulator pattern, nested loops
- Strings: operations (e.g. concatenation); slices; methods such as split(), strip(), lower(), upper(); in and not in
- Lists: operations; slices; methods such as append(), insert(), pop(), sort(), remove()
- Files: reading and writing
- Dictionaries: key-value pairs, adding entries, iterating over items in a dictionary
- Exceptions: what they are, how to use a try: except: block
- Recursion: what it is, using recursion to solve problems
- Classes: defining and using classes; terminology: object, method, class, instance
- Graphical interfaces: what they are; basic use of the Tkinter module
From How the Internet Works
Reivew the chapters that we have studied, especially the Glossary sections and comprehension questions at the end of each chapter.
In particular, pay attention to the following:
- The four-layer model: link, internetwork, transport, and application layers
- Link layer: MAC address, broadcast, gateway, packet
- Internetwork layer: router, DHCP, IP address, NAT, routing table, TTL
- Transport layer: acknowledgement, port number, TCP
- Application layer: HTTP, IMAP, browser, server
- Domain Name System: domain name, DNS, ICANN, registrar, subdomain, TLD
- Secure transport: plain text vs. ciphertext, encrypt/decrypt, shared secret, public key encryption, Caesar cipher, digital signature, certificate authority, Diffie-Hellman key exchange
Other Topics
- Parallel processing: basic concepts, WebMapReduce
- HTML: basic structure of a HTML document, tags, attributes
- CSS: what it does, basic syntax
- Writing HTML and CSS with Python: how to use Python to manipulate strings to produce a HTML/CSS file
For more programming practice, you might try some of the practice problems from class before looking at the solutions.
Lastly, make sure you are familiar with the St. Olaf final exam policies.