Slides of the lectures and Python code will be posted below:
L-1 Mon 25 Aug 2008: welcome to mcs 260
(printer friendly version )
L-2 Wed 27 Aug 2008: computer architecture
-- first steps with Python -- binary numbers -- using Sage
(printer friendly version )
our first Python programs hello.py
and hello_there.py
L-3 Fri 29 Aug 2008: the von Neumann machine
-- using Python as a calculator
(printer friendly version )
L-4 Wed 3 Sep 2008: numbers, variables,
and assignments -- developing Python programs
(printer friendly version )
Python program yieldbal.py
L-5 Fri 5 Sep 2008: operating systems
-- strings, lists, and tuples in Python
(printer friendly version )
L-6 Mon 8 Sep 2008: mass storage, files and
databases -- dictionaries in Python
(printer friendly version )
Python code: mileage.py
and miletab.py
L-7 Wed 10 Sep 2008: syntax and semantics
of languages -- input and output formats
(printer friendly version )
L-8 Fri 12 Sep 2008: boolean algebra
-- flowcharts -- conditional constructs in Python
(printer friendly version )
Python code: passfail.py ,
gradecurve.py , and
followup.py .
L-9 Mon 15 Sep 2008: transistors and logic
gates -- intrinsic operations on numbers and strings
(printer friendly version )
Python code: alphatest.py
and write_numbers.py
L-10 Wed 17 Sep 2008: flip-flops and
registers -- intrinsic operations on lists: queues and stacks
(printer friendly version )
Python code:
sortwords.py ,
write_values.py , and
hanoi3.py .
L-11 Fri 19 Sep 2008: adder circuits
-- loop constructs: the while and for
(printer friendly version )
Python code:
showbal.py ,
showfor.py , and
gcd.py .
L-12 Mon 22 Sep 2008: simulation using
random numbers -- binary expansion with repeat until: break
(printer friendly version )
Python programs randuse.py ,
mc4pi.py ,
binexp1.py ,
binexp1b.py ,
binexp1c.py , and
findelem.py .
L-13 Wed 24 Sep 2008: top down design of
programs -- functions in Python
(printer friendly version )
Python code npdf.py ,
use_npdf.py , and
simuwait.py .
L-14 Fri 26 Sep 2008: local and global
variables -- arguments of functions -- functions using functions
(printer friendly version )
Python code
votes1.py ,
votes2.py ,
area.py ,
area2.py , and
traprule.py .
L-15 Mon 29 Sep 2008: functional programming
-- lambda forms -- list comprehensions
(printer friendly version )
Python programs oracle.py ,
evalshow.py ,
calculator.py , and
mc4pi2.py .
L-16 Wed 1 Oct 2008:
review of the first 15 lectures
with answers
(printer friendly version )
L-17 Fri 3 Oct 2008: first midterm exam:
version a
with answers;
version b
with answers.
L-18 Mon 6 Oct 2008: software engineering
-- bottom up design of programs -- modules in Python
(printer friendly version )
Python modules:
stack_data.py,
stack_of_data.py, and
stack_of_data_io.py,
tested by stack_user.py.
L-19 Wed 8 Oct 2008: the software development
cycle and quality -- modular design with Python
(printer friendly version )
Python modules:
quand.py,
questions.py, and
dialogue.py,
called by quiz.py.
L-20 Fri 10 Oct 2008: software licensing
and open source -- modules and packages
(printer friendly version )
We made a package of the modules of L-19.
L-21 Mon 13 Oct 2008: organization of data
on files -- manipulating files with Python
(printer friendly version )
Python module: bkform.py,
the file books,
and program library.py.
L-22 Wed 15 Oct 2008: data compression --
format conversions -- using buffers to process files
(printer friendly version )
Python code:
bkform2list.py ,
bklist2dict.py ,
scramvow.py ,
cntword.py ,
locword.py , and
repword.py .
L-23 Fri 17 Oct 2008: archiving files, pipes
-- the os module and directory methods
(printer friendly version )
Python code:
firstline.py ,
maxfile.py ,
delpyc.py , and
ibmstock.py .
L-24 Mon 20 Oct 2008: object-oriented
programming -- unified modeling language -- classes in Python
(printer friendly version )
Python classes:
classbook.py ,
classperson.py ,
classcatalog.py ,
classpeople.py ,
and the main program
libclassman.py .
L-25 Wed 22 Oct 2008: data and functional
attributes of classes -- operator overloading
(printer friendly version )
Python class
FlopFloats ,
used by
flopsum ,
and the class Quaternion .
L-26 Fri 24 Oct 2008: encapsulation,
inheritance, polymorphism -- wrapping and delegation
(printer friendly version )
Python classes:
class Poly ,
class Point ,
class Point (with private data),
class Circle ,
used by the script
pointcircle.py ,
and finally, the encapsulation of turtle graphics:
spirbot.py .
L-27 Mon 27 Oct 2008: software testing,
verification techniques -- pre- and postconditions with assert
(printer friendly version )
Python code: useassert.py
L-28 Wed 29 Oct 2008: exception handling --
defining, raising, and handling exceptions in Python
(printer friendly version )
Python code:
readfilename.py,
readfilename1.py,
readfilename2.py,
readfilename3.py,
cntrlc.py,
ratraise.py,
estimpi.py, and
anytimepi.py.
L-29 Fri 31 Oct 2008: complexity and cost --
complexity classes -- timing Python programs
(printer friendly version )
Python code:
flopfloats.py,
floppoly.py,
sortrandnumb.py,
time_iftry.py,
time_sin.py,
time_filework.py, and
time_listcomp.py.
L-30 Mon 3 Nov 2008: graphical user
interfaces -- using Tkinter, a GUI toolkit for Python
(printer friendly version )
Python code:
sliding_puzzle.py ,
guihello.py,
guihello2.py,
usegrid.py,
guiradio.py,
guicheck.py, and
mousedraw.py,
L-31 Wed 5 Nov 2008: expression evaluation --
graphing functions -- using the Canvas widget
(printer friendly version )
Python code:
dyneval.py,
guieval.py,
guievaloo.py,
pentagram.py,
samplefun.py, and
guisample.py.
L-32 Fri 7 Nov 2008: entering data with
a scale -- the development of animations
(printer friendly version )
Python code:
showscale.py,
exscale0.py,
exscale1.py,
exscale2.py,
slidedot.py, and
movedot.py.
L-33 Mon 10 Nov 2008: networking and the
internet -- markup languages -- client/server networks
(printer friendly version )
Python code:
forecast.py and
showtime.py.
L-34 Wed 12 Nov 2008: review for second
midterm
Some answers and hints are here
(printer friendly version ).
Some Python code:
parsecal.py,
MyUname.py, and
guipin.py.
L-35 Fri 14 Nov 2008:
second midterm exam:
version a
with answers,
the GUI for the last question ;
version b
with answers,
the GUI for the last question .
L-36 Mon 17 Nov 2008: dynamic web pages --
introduction to CGI: running Python code on the web
(printer friendly version ).
HTML code loginpage.html and
CGI script validate.py .
Python script to generate
HTML code: webtime.py .
L-37 Wed 19 Nov 2008: relational design of
databases -- query languages -- MySQL and MySQLdb
(printer friendly version ).
L-38 Fri 21 Nov 2008: topologies of computer
networks -- layers and protocols -- using sockets in Python
(printer friendly version ).
Python code: tcp_server.py and
tcp_client.py;
clockserver.py ,
clockclient.py , and
clockserver1.py .
L-39 Mon 24 Nov 2008: processes and threads --
lifecycle of a thread -- multithreaded programming
(printer friendly version ).
Python code:
hello_threads.py ,
hello_threading.py ,
classproducer.py ,
classconsumer.py , and
prodcons.py .
L-40 Wed 26 Nov 2008: web servers --
interactive web pages with Python
(printer friendly version ).
L-41 Mon 1 Dec 2008: review of the first
15 lectures
Some answers:
code for question 10 ,
code for question 11 ,
code for question 12 ,
code for question 14 ,
code for question 15
L-42 Wed 3 Dec 2008: review of material up
to second midterm
Some answers:
code for question 4 ,
code for question 5 ,
code for question 11 ,
code for question 14 ,
code for question 15
L-43 Fri 5 Dec 2008: cumulative review
Final exam on Monday 8 December, 1:00PM-3:00PM in LC A4.