Montana Tech of The University of Montana
Computer Science & Software Engineering

CSCI 135
Fundamentals of Computer Science I
Fall 2017



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 book Java: An Introduction to Problem Solving and Programming by Walter Savitch. To get the most out of lectures, skim the reading beforehand (or at least look at the pictures!). You may also want to print out the slides before lecture so you can write and highlight on 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.)

#DateTopicSlidesReadingPractice ExercisesExamples
0 Mon. 8/21 Welcome,
ECLIPSE VIEWING!!
Mini-Assignment #0
- Wed. 8/23 First week of classes - NO LAB
1 Fri. 8/25 Introduction,
Computer Basics
Course Overview,
Computer Basics
1.1, 1.2, 1.3 Self-Test 1.1, 1.2, 1.5, 1.6, 1.8, 1.9, 1.10, 1.11, 1.15, 1.16, 1.17, 1.29, 1.30 HelloWorld.java
2 Mon. 8/28 Programming Basics Basic Computation 2.1, 2.2 Self-Test 2.1, 2.2, 2.3, 2.6, 2.8, 2.10, 2.11, 2.13, 2.14, 2.19, 2.20, 2.21, 2.22, 2.23, 2.25, 2.26 LoveHate.java LoveHate2.java LoveHate3.java LoveHate4.java ArgsExample.java
- Wed. 8/30 Lab 1: Hello New World
3 Fri. 9/1 Data Types, Expressions More Basic Computation CharExample.java StringExample.java LeapYear.java TypeExample0.java TypeExample1.java TypeExample2.java TypeExample3.java CostCalc.java TwoDice.java
- Mon. 9/4 NO CLASS - Labor Day Holiday
- Wed. 9/6 Lab 2: Data Types and Expressions
4 Fri. 9/8 Conditional Execution Conditionals 3.1, 3.2 Self-Test 3.1, 3.2, 3.4, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, FlipCoin.java PriceWithTax.java GuessGame.java GuessGame2.java
5 Mon. 9/11 More Conditional Execution More Conditionals 3.3

Self-Test 3.15, 3.16, 3.17, 3.18, 3.19, 3.20

Months.java Months2.java Months3.java
- Wed. 9/13 Lab 3: Conditional Execution
6 Fri. 9/15 Iteration Iteration 4.1, pp.202-217 Self-Test 4.1, 4.2, 4.3, 4.4, 4.5 Summation.java Powers2.java PickPoints.java
7 Mon. 9/18 More Iteration More Iteration 4.1, pp. 218-228, 4.2 Self-Test 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13 SummationFor.java ForEach.java StarTriangle.java StarTriangle2.java
- Wed. 9/20 Lab 4: Iteration
8 Fri. 9/22 Arrays Arrays 7.2 Self-Test 7.1, 7.2, 7.3, 7.4, 7.5 Zombie.java NumCount.java Backwards.java 4words.txt backward.txt CompareArrays.java
- Mon. 9/25 Multidimensional Arrays Multidimensional Arrays
Programming Style
7.5 Self-Test 7.28, 7.30 Temp2D.java StdDraw.java
- Wed. 9/27 Lab 5: Arrays
9 Fri. 9/29 Exceptions Exceptions AddNums1.java AddNums2.java AddNums3.java AddNums4.java AvgNumsFile.java squares.txt mobydick.txt
10 Mon. 10/2 Review for Exam 1 Exam 1 Outline
- Wed. 10/4 Exam 1
11 Fri. 10/6 Input/Output Input/Output FloatingPointFormatting.java IntegerFormatting.java StringFormatting.java PrintfGoneWild.java
12 Mon. 10/9 Graphics and Audio Graphics and Audio AvgNumsFile.java HelloDraw.java HelloDraw2.java DrawShapes.java DrawShapesColor.java HelloScale.java DrawImage.java HelloSize.java SpinningImage.java SpinningImageKey.java SpinningImageKeyAudio.java StdDraw.java StdAudio.java squares.txt frog.jpg dont_panic.png spanishf.mid cow.wav frog.wav explosion.wav
- Wed. 10/11 Lab 6: Mars Rover
13 Fri. 10/13 Problem Decomposition Problem Decomposition RadarInClass.java radar4.txt
14 Mon. 10/16 Methods Methods MethodJumping.java DiceRolling.java RandomUtil.java PassByVal.java AverageArray.java MysteryMethods.java
- Wed. 10/18 Lab 7: Methods
15 Fri. 10/20 Testing and Debugging Testing and Debugging Factors1.java Factors2.java Factors3.java Factors4.java Factors5.java Factors6.java Factors7.java
16 Mon. 10/23 Test Driven Development Test Driven Development Shipping.java
- Wed. 10/25 Lab 8: Testing
17 Fri. 10/27 Classes Classes Ball.java BallClient.java BallClientDeluxe.java BallClientSuperDeluxe.java StdDraw.java FaceStudentShell.java
18 Mon. 10/30 Objects, Primitives and References Objects and References Ball.java BallClient2.java BallSoapOpera.java StdDraw.java
- Wed. 11/1 Lab 9: Object Oriented Design
19 Fri. 11/3 More Classes More Classes Fraction1.java Fraction1Client.java FractionCompleted.java
- Mon. 11/6 Review for Exam 2 Exam 2 Outline
- Wed. 11/8 Exam 2 scores.txt Thermostat.java snowman.txt
- Fri. 11/10 NO CLASS - Veteran's Day Holiday
20 Mon. 11/13 Problem Decomposition Revisited Problem Decomposition BankClient.java Person.java Customer.java Account.java
- Wed. 11/15 Lab 10: Object Oriented Programming
21 Fri. 11/17 Designing Data Types Designing Data Types Person.java PersonClient.java PersonBad.java PersonBadClient.java StringImmutability.java DoubleTrouble.java DoubleEquality.java BallTrouble.java BallEquality.java StringTrouble.java StringEquality.java
22 Mon. 11/20 Composition and Inheritance Inheritance Circle.java CircleImage.java CircleImageRotate.java CircleClient.java BouncersClient.java Bouncers.java StdDraw.java
- Wed. 11/22 NO CLASS - Thanksgiving Holiday
- Fri. 11/24 NO CLASS - Thanksgiving Holiday
23 Mon. 11/27 Design Principles OOD Principles Animal.java Bird.java AnimalClient.java
- Wed. 11/29 Final Programming Exam Inflator Zip File
24 Fri. 12/1 OOP/Inheritance Matrix.java Label.java LabelDrip.java LabelJiggle.java StdDraw.java
Solution Code:
Matrix.java Label.java LabelDrip.java LabelJiggle.java StdDraw.java
25 Mon. 12/4 Review for Written Final Exam Exam 3 Outline
- Mon. 12/11 Written Final Exam, 11:30-1:30


Page last updated: August 15, 2018