Week | Tuesday | Thursday |
---|---|---|
1 | Sept. 5th Lecture 1 / Lab 1. Welcome to CS5001/CS5003 / Introduction to Python presentation:small Slides, document:small [PDF], youtube:small Screencast macbook:small Install PyCharm (before first class, if possible!) document:small Handout: CS5001 Course Information (see below for Syllabus) notepad:small Lab Handout book_1:small Textbook book_1:small Reading: Ch 1, 2.1-2.5 notepad:small Assignment 1 released Introductions, course administration and expectations. We will ensure that everyone has their development environment working on their laptops, and we will write our first programs! Topics:
|
|
2 | Sept. 10 Lecture 2. Functions, Passing values to functions, Branching presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 3, 5.1-5.4 code:small Code notepad:small Assignment 1 due notepad:small Assignment 2 released Today, we will start to talk about code that is "re-usable," in the form of functions. Functions enable a programmer to use pre-built code to perform a particular task. We will also talk about how you control a function by passing it data that you want it to use. Finally, we will demonstrate how to control a program based on logic, which significantly enhances what we can do with programming. Topics:
|
Sept. 12 Lab 2: Using functions from libraries and writing your own functions notepad:small Lab Handout In this lab you will practice your skills on conditional expressions and with writing and testing functions. |
3 | Sept. 17 Lecture 3. More on branching, iteration, lists presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 5.6-5.7, 7.1-7.4, 10.1-10.4 code:small Code notepad:small Assignment 2 due notepad:small Assignment 3 released Today, we will continue to discuss branching, and then we will talk about iteration, which is the repetition of a section of code. We will also talk about how to stop iteration before it would normally terminate (called a break ), and then we will introduce our first data structure, called a list . Topics:
|
Sept. 19 Lab 3: Encryption and Decryption notepad:small Lab Handout Tonight's lab will be all about encryption and decryption! You will write functions to do both. This will test your looping abilities and your arithmetic abilities. |
4 | Sept. 24 Lecture 4. Iteration (continued), tuples, list slicing, list comprehensions, strings presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 8, 10.1-10.4 Today, we will continue to talk about iteration (including the continue statement!), and we will talk more about using lists. We will also more formally introduce the idea of strings, which consist of text that you will use in your programs. Topics:
|
Sept. 26 Lab 4: Practice with Lists and Strings notepad:small Assignment 3 due notepad:small Assignment 4 released notepad:small Lab Handout In this week's lab, we will practice many examples of list and string functions. They are the kind of functions you might see in a midterm or final exam, and during programming interviews. |
5 | Oct. 1 Lecture 5. Recursion and Dictionaries Lecture 5: Dictionaries and Recursion presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 3, 5.8-5.12, Ch 11 code:small Code notepad:small Assignment 4 due notepad:small Assignment 5 released Today, we will discuss an powerful concept called "recursion," which is simply defined as a function calling itself. This topic tends to scare people, but we will take it slow and have many examples. Topics:
|
Oct. 3 Lab 5: Turtles, Dictionaries, and Recursion notepad:small Lab Handout Today, we will investigate Turtle graphics, and we will see some recursion, as well. |
6 | Oct. 8 Lecture 6. File processing and exception handling presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 14.1-14.5 code:small Code Today, we will talk about how to interact with the file system on your computer, so that you can read from and write to files. We will also talk about exception handling which is a way to keep your program running properly if something unexpected happens (e.g., what if a file you want to read doesn't exist?). Topics:
|
Oct. 10 Lab 6: File I/O and exceptions: Facebook and the Seven Dwarfs notepad:small Lab Handout This week, you will write a mini-Facebook that manipulates the friend lists of the Seven Dwarfs. notepad:small Assignment 5 due notepad:small Assignment 6 released |
7 | Oct. 15 Lecture 7. Midway Recap and Midterm exam preparation presentation:small Slides, [PDF], Screencast code:small Code notepad:small Assignment 6 due notepad:small No assignment -- start studying for midterm! |
Oct. 17 Lab 7: Midterm Preparation. notepad:small Lab Handout In this week's lab, you will be testing the software we will use for next week's midterm exam, and you will be practicing similar problems to the ones you will see on the exam. |
8 | Oct. 22 Midterm Exam (in class) notepad:small Assignment 7 released |
Oct. 24 Lab 8: Bouncing Balls notepad:small Lab Handout Tonight you will be getting a preview on classes and Object Oriented Programming. Enjoy! |
9 | Oct. 29 Lecture 8. Object oriented programming, and intruducing the stack and queue data structures.presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 15 (re-read!) code:small Code notepad:small Assignment 7 released Today, we jump into the world of object oriented programming. We will introduce classes and objects, and we will talk about why OOP is important. We will also start disussing better ways to test your code, specifically with a notion of unit testing, which comprises a series of tests that try to ensure that each part of your program is correct. We will also introduce two useful data structures called the stack and the queue . These similar data structures are used to solve many different types of problems in computing. Topics:
|
Oct. 31 Lab 9: The CalendarEvent class. notepad:small Lab Handout This week, we will be delving deeper into classes, and you will write a CalendarEvent class that holds events for a calendar. |
10 | Nov. 5 Lecture 9. More OOP, Stacks, Queues presentation:small Slides, [PDF], Screencast
|
Nov. 7 Lab 10: Turtle Stacks notepad:small Lab Handout Tonight, you will create a stack class that enables you to draw rectangles on and off the screen. |
11 | Nov. 12 Lecture 10. Searching and Sorting presentation:small Slides, [PDF], Screencast book_1:small Reading: Appendix B code:small Code notepad:small Assignment 10 released Two important tasks that programmers frequently do is to search through data, and to sort data. In both cases, there are multiple ways to perform the tasks, and some are fast and efficient, while others are slow and inefficient. We need to learn which ones to use, and when! |
Nov. 14 Lab 10: Searching and Sorting notepad:small Lab Handout In this lab you will be practicing writing searching and sorting algorithms. |
12 | Nov. 19 Lecture 11. Using Python for Artificial Intelligence presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 3, 5.1-5.4 code:small Code |
Nov. 21 Lab More sorting and searching. notepad:small Lab Handout |
13 | Nov. 26 Lecture 12. Iterators, Generators, and Lambda Functions presentation:small Slides, [PDF] book_1:small Reading: Ch 3, 5.1-5.4 code:small Code notepad:small Assignment 8 released Today we will learn about iterators, generators, lambda functions, and sets. We have used iterators frequently (e.g., when we traverse a list in a for loop), but we will learn how to create iterators directly. We will also learn how to create a generator , which can generate iterators for us. We will also learn about lambda functions, which are anonymous functions (without a name) and they are useful in some situations. Finally, we will learn about the set data structure, which allows us to store unique elements and to compare sets together.
|
Nov. 28 No Lab (Thanksgiving Break) |
14 | Dec. 3 Lecture 13. Review and Wrap-up presentation:small Slides, [PDF], Screencast book_1:small Reading: Ch 3, 5.1-5.4 code:small Code Today we will review and wrap up the course. |
Dec. 5 Optional lab: review and help with assignment 8 |
15 | Dec. 10 Final Exam |