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).

#DateModuleTopicSlidesVideosReadingPractice ExercisesExamples
1 Mon. 8/17 Introduction Course Mechanics
Computing Basics
Programming Basics
- Wed. 8/19 NO LAB - 1st week
2 Fri. 8/21 Introduction to Python:
Python Basics
Execution
Program Parts
Idle Shell/Editor
Command Window
3 Mon. 8/24 Introduction to Python:
Variables and Data Types
Variables
Basic Data Types
Type Conversion
Operations on Data Types:
  Math
  Strings
  Boolean
- Wed. 8/26 LAB 1: Hello Python!
4 Fri. 8/28 Introduction to Python:
Lists / Arrays
Declaration
Creation
Initialization
Accessing Elements
Modifying Elements
List Operations
5 Mon. 8/31 Introduction to Python:
Multidimensional Lists / Arrays & Other Data Containers
Multidimenstional Lists / Arrays
Other Data Containers:
  Dictionaries
  Sets
- Wed. 9/2 LAB 2: Lists / Arrays
6 Fri. 9/4 Controlling Execution Order:
Conditionals / Selection
if Statement
Side Note: Enumerations
- Mon. 9/7 NO CLASS - Labor Day Holiday
- Wed. 9/9 LAB 3: Selection
7 Fri. 9/11 Controlling Execution Order:
Loops / Iteration
while Loop
for Loop
8 Mon. 9/14 Input / Output (I/O):
Text I/O
Screen Output
Interactive Input
Command Line Input
File Input
- Wed. 9/16 LAB 4: Iteration and I/O
9 Fri. 9/18 Input / Output (I/O):
Graphics and Audio
StdDraw
StdAudio
10 Mon. 9/21 Review for Midterm Exam
- Wed. 9/23 MIDTERM EXAM
11 Fri. 9/25 Problem Decomposition:
Software Development Life Cycle (SDLC)
SDLC Overview
Requirements
Design
Implementation
Testing
Release / Maintenance
12 Mon. 9/28 Problem Decomposition:
Functional Decomposition
Breaking a Problem into Parts
Functions
  Library Functions
  User Defined Functions
  Calling a Function
Flow of Control
- Wed. 9/30 LAB 5: Functions
13 Fri. 10/2 Problem Decomposition:
Data Decomposition
Finding the Nouns
Attributes
Methods (Verbs)
UML Diagrams
API - Application Program Interface
14 Mon. 10/5 Object Oriented Programming:
Classes
Creating Your Own Data Types
self
Client Programs
Static Objects
- Wed. 10/7 LAB 6: Classes
15 Fri. 10/9 Object Oriented Programming:
Inheritance
Advantages
Subclasses and Superclasses
16 Mon. 10/12 Object Oriented Programming:
Designing Data Types
Data Encapsulation Model:
  Class/Client/API
Accessors
Mutators
- Wed. 10/14 LAB 7: Classes as Data Types
17 Fri. 10/16 Object Oriented Programming:
Designing Data Types
More Design Considerations:
  Immutability
  Object Equality
  Important Methods
18 Mon. 10/19 When Things Go Wrong:
Exceptions
Defending Against Bad Input
Handling Unexpected Events
- Wed. 10/21 LAB 8: Exceptions
19 Fri. 10/23 When Things Go Wrong:
Debugging
Preventing Bugs
20 Mon. 10/26 When Things Go Wrong:
Debugging
Finding Bugs
- Wed. 10/28 LAB 9: Debugging
21 Fri. 10/30 When Things Go Wrong:
Testing
Software Quality
Levels of Testing
Black Box vs. White Box
22 Mon. 11/2 When Things Go Wrong:
Testing
Equivalence Classes of Tests
Regression Testing
- Wed. 11/4 LAB 10: Testing
23 Fri. 11/6 Case Study:
Problem Decomposition
24 Mon. 11/9 Case Study:
Design and Implementation
- Wed. 11/11 NO CLASS - Veterans Day Holiday
25 Fri. 11/13 Case Study:
Testing
26 Mon. 11/16 Review for Final Exam
- Tues. 11/24, 8:00-10:00 FINAL EXAM


Page last updated: July 17, 2020