Montana Tech of The University of Montana
Computer Science Department

CSCI 135
Fundamentals of Computer Science I
Fall 2020



SCHEDULE

This page lists the dates of all the lectures with links to slides and examples from the lecture (if any). Readings are in the electronic book Python Crash Course, 2nd Edition, which is availabe free and online through the library (see the resources tab on how to access it). To get the most out of lectures, skim the reading beforehand. You may also want to print out the slides before lecture so you can write on and/or highlight them during lecture. After the lecture, go back and read the pages carefully and do the book exercises. (These exercises are for your practice and not to be turned in or graded. It's still a good idea to do them to make sure you understand the material.)

#DateModuleTopicSlidesVideosReadingPractice ExercisesExamples
1 Mon. 8/17 Introduction Course Mechanics
Computing Basics
PDF1
PDF2
Video1
Video2
- Wed. 8/19 NO LAB - 1st week
2 Fri. 8/21 Introduction to Python:
Python Basics
Programming Basics
  Execution
  Idle Shell/Editor
  Program Parts
  Algorithms
Command Window
PDF1




PDF2
Video1




Video2
Hello.py Input.py





3 Mon. 8/24 Introduction to Python:
Variables and Data Types
Variables
Basic Data Types
Type Conversion
Operations on Data Types:
  Math
  Strings
  Boolean
PDF1


PDF2



Video1


Video2



Chapter 2 2-1, 2-2, 2-3, 2-4, 2-5, 2-6, 2-7, 2-8, 2-9 StringDemo.py IntegerDemo.py FloatDemo.py BooleanDemo.py LeapYear.py StringConcat.py
- Wed. 8/26 LAB 1: Hello Python! Video
4 Fri. 8/28 Introduction to Python:
Lists / Arrays
Declaration
Creation
Initialization
Accessing Elements
Modifying Elements
List Operations
PDF Video Chapter 3 3-1 through 3-9 Zombie1.py Zombie2.py CountEntries.py Backwards.py 4words.txt backward.txt ListBehavior.py ZombieGame.py
5 Mon. 8/31 Introduction to Python:
Working with Lists / Setting up a Problem
Working with Lists
Operations on Lists:
Multidimensional Lists
Example Problem
PDF Video Chapter 4 (can skip over section on Tuples) 4-1 through 4-12 Assignment.py Insertion.py Remove.py Rearrange.py Membership.py Comprehension.py ForLoop.py Matrices.py Encrypt.py Decrypt.py
- Wed. 9/2 LAB 2: Lists / Arrays Video
6 Fri. 9/4 Controlling Execution Order:
Conditionals / Selection
if Statement PDF Video Chapter 5 5-1 through 5-11 LeapYear.py ArgsExample.py OneWayIf.py TwoWayIf.py IfElse.py Months.py Indent.py Booleans.py Random.py Unicorn.py Ternary.py
- Mon. 9/7 NO CLASS - Labor Day Holiday
- Wed. 9/9 LAB 3: Selection Video
7 Fri. 9/11 Controlling Execution Order:
Loops / Iteration
while Loop
for Loop
PDF Video Chapter 7 7-1 through 7-7 Summation.py Powers2.py SummationFor.py StarTriangle.py BreakDemo.py
8 Mon. 9/14 Input / Output (I/O):
Graphics and Audio
StdDraw
StdAudio
PDF Video StdDraw.py color.py picture.py stdarray.py stdio.py StdAudio.py

AvgNumsFile.py squares.txt GraphicsPractice.py HelloDraw.py DrawShapes.py DrawShapesColor.py HelloScale.py DrawImage.py HelloSize.py HelloDraw.py BouncingImage.py BouncingImageKey.py BouncingImageKeyAudio.py

dont_panic.png frog.jpg frog.wav
- Wed. 9/16 LAB 4: Iteration and I/O Video
9 Fri. 9/18 Input / Output (I/O):
Text I/O
Screen Output
Interactive Input
Command Line Input
File Input
PDF Video StdDraw.py color.py picture.py stdarray.py stdio.py StdAudio.py

BasicPrinting.py PrintSameLine.py FormattedPrinting.py FloatingPointPrint.py IntegerPrint.py IntegerFlags.py StringPrinting.py PrintGoneBad.py AvgNumsFile.py AvgNumsFile_2.py squares.txt GraphicsPractice.py hitchhiker.txt dont_panic_40.png
10 Mon. 9/21 Practice with Graphics PDF Video StdDraw.py color.py picture.py stdarray.py stdio.py StdAudio.py

DrawShapes.py DrawShapesColor.py Face.py Checkerboard.py MooseDemo.py Moose.png BouncingImageKey.py dont_panic_40.png BouncingImageKeyAudio.py frog.jpg frog.wav DrawingDemo.py
- Wed. 9/23 LAB 4: Iteration and I/O - continued
11 Fri. 9/25 Review for Midterm Outline
PDF
Video
12 Mon. 9/28 Review for Midterm Outline
PDF
Video
- Wed. 9/30 MIDTERM EXAM Video - Written Exam
Video - Programming
13 Fri. 10/2 Problem Decomposition:
Functional Decomposition
Functions
  Library Functions
  User Defined Functions
  Calling a Function
Flow of Control
PDF Video Chapter 8 8-1 through 8-16 DiceRolling.py FunctionJumping.py PassByVal.py AverageList.py Vote.py VoteFunctions.py VoteHelper.py
14 Mon. 10/5 Problem Decomposition:
Functional Decomposition
Breaking a Problem into Parts PDF Video Fraction0.py Fraction1.py Fraction.py Fraction2.py FinalFraction.py
- Wed. 10/7 LAB 5: Functions Video
15 Fri. 10/9 Object Oriented Programming:
Classes
Creating Your Own Data Types
self
Client Programs
Static Objects
PDF Video Chapter 9, from start to Inheritance 9-1 through 9-5 StdDraw.py color.py stdarray.py stdio.py

Circle.py LimitedCircleClient.py CircleClient.py CircleClientDeluxe.py CircleClientSuperDeluxe.py
16 Mon. 10/12 Object Oriented Programming:
Inheritance
Advantages
Subclasses and Superclasses
PDF Video Chapter 9 from Inheritance to end 9-6 through 9-12 StdDraw.py color.py stdarray.py picture.py stdio.py

Circle.py BouncingCircle.py BouncingCircleClient.py BouncingImage2.py BouncingImage3.py BouncingImageClient.py BouncingImagePolyClient.py BouncerClient.py Bouncers.py dont_panic.png dont_panic_40.png
- Wed. 10/14 LAB 6: Classes Video
17 Fri. 10/16 Object Oriented Programming:
Designing Data Types
Data Encapsulation Model:
  Class/Client/API
Accessors
Mutators
PDF Video Circle.py CircleClient2.py
18 Mon. 10/19 Object Oriented Programming:
Designing Data Types
More Design Considerations:
  Software Life Cycle
  Finding the Nouns
  Finding the Verbs
PDF Video1
Video2
- Wed. 10/21 LAB 6: Classes (continued) Video
Recorded live - hope it's helpful?
19 Fri. 10/23 When Things Go Wrong:
Exceptions
Defending Against Bad Input
Handling Unexpected Events
PDF Video
Chapter 10 from Exceptions to Storing Data 10-6 through 10-10 AddNums1.py AddNums2.py AddNums3.py AddNums4.py AvgNumsFile1.py AvgNumsFile2.py UserDefinedExc.py AvgNumsFile3.py

squares.txt TaleOfTwoCities.txt mobydick.txt
20 Mon. 10/26 When Things Go Wrong:
Debugging
Finding and Preventing Bugs PDF Video
Factors0.py Factors1.py Factors2.py Factors3.py Factors4.py Factors5.py
- Wed. 10/28 LAB 7: Exceptions and Testing Video
21 Fri. 10/30 When Things Go Wrong:
Testing
Software Quality
Levels of Testing
Black Box vs. White Box
PDF Video
Chapter 11 11-1 through 11-3 TestMe.py TestMeWithUnitTests.py TestIsLegalURL.py
22 Mon. 11/2 Case Study:
Problem Decomposition
Wumpus World:
Defining Classes
PDF Video
- Wed. 11/4 LAB 8: Classes as Data Types Video
23 Fri. 11/6 Reprieve - No New Material!
24 Mon. 11/9 Case Study:
Problem Decomposition and Design
PDF Video
- Wed. 11/11 NO CLASS - Veterans Day Holiday
25 Fri. 11/13 Review for Final Exam Outline
PDF
Video
26 Mon. 11/16 Review for Final Exam Outline
PDF
Video
- Tues. 11/24, 8:00-10:00 FINAL EXAM inflator.zip


Page last updated: November 24, 2020