CSCI 136
Fundamentals of Computer Science II
Spring 2018

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



SCHEDULE

This page lists the anticipated 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, 7th edition by Walter Savitch. Additional readings in the optional text, Head First Java by Kathy Sierra and Bert Bates are listed as HF, along with the appropriate pages. This book is optional, but presents concepts in a very different way than our main textbook, and you may find this approach helpful. To get the most out of lectures, skim the reading beforehand (or at least look at the pictures!). After the lecture, go back and read the pages carefully. Doing the book exercises can also be helpful.

#DateTopicSlidesReadingExamples
1 Mon. 1/8 Course Overview PDF  Java Ch. 1-7
Java App. 5
HF Ch. 1-5
TestJavadoc.java  TryJavadoc.java 
- Wed. 1/10 Lab: Software Development Process
2 Fri. 1/12 Dynamic Arrays PDF Java Ch. 12.1
HF Ch.6, 16
ArrayListExample.java  ArrayListRemoveFailure.java  ArrayListRemoveLoop.java  ArrayListEnhancedForLoop.java  ReverseLines.java  ReverseNums.java  states.txt  nums.txt  Duck.java 
- Mon. 1/15 No Class - Martin Luther King Day
- Wed. 1/17 Lab: Dynamic Arrays
3 Fri. 1/19 Linked Lists PDF Java Ch. 12.3 Node.java  Quote.java 
4 Mon. 1/22 Stacks and Queues PDF Java Ch. 12.3 StackOfStringsLL.java  QueueOfStrings.java  ReverseWords.java  Speller.java  Zipped Letter Sounds  Balanced.java  StdAudio.java  StdDraw.java  StackOfStringsArray.java 
- Wed. 1/24 Lab: Stacks and Queues
5 Fri. 1/26 Abstract Data Types, Generics PDF Java Ch. 12.4 mobydick.txt  StackOfStringsArray.java  ReverseWords1.java  ReverseWords.java  ReverseWords2.java  StackOfStringsArrayDynamic.java  ReverseWords3.java  StackOfStringsArrayDouble.java  ReverseWords4.java  StackOfStringsArrayList.java  ReverseWords5.java  StackOfStringsLinkedList.java  ReverseWords6.java  StackOfDoubles.java  StackOfGems.java  Gem.java  ThreeSum.java  ThreeSumWrapper.java  MyStack.java 
6 Mon. 1/29 Hash Maps, Performance PDF Java Ch. 12.2 HashMapDNS.java  Animal.java  AnimalSpin.java  AnimalMap.java  HashMapIter.java  ThreeSum.java 
- Wed. 1/31 Lab: Abstract Data Types
7 Fri. 2/2 Inheritance Revisited PDF Java Ch. 8.1-8.3 Circle.java  CircleClient.java  CircleImage.java  CircleImageRotate.java  Bouncers.java  BouncersClient.java  Tile.java  LetterTile.java  NumberTile.java  TileBoard.java  TileGame.java  StdDraw.java  StdRandom.java  asteroid_big.png  dont_panic_40.png 
8 Mon. 2/5 Interfaces PDF Java Ch. 8.4
Java App. 9
Shape.java  Circle.java  CircleBorder.java  Rectangle.java  RectangleBorder.java  Bordered.java  GrowShape.java  RandomShapes.java  StdDraw.java 
- Wed. 2/7 Lab: Interfaces
9 Fri. 2/9 Recursion I
Take Home Exam 1 Handed Out
PDF Java Ch. 11.1 Factorial.java  Factorial2.java  BinarySearch.java  Collatz.java  Htree.java  Fibonacci.java  Stats.java  StdDraw.java  Exponentiate.java 
10 Mon. 2/12 Recursion II
Take Home Exam 1 Due
PDF Java Ch. 11.2 Brownian.java  PlasmaCloud.java  RecursiveMystery.java  StdDraw.java  StdRandom.java 
- Wed. 2/14 Lab: Recursion
11 Fri. 2/16 Threads PDF HF Ch. 15 Animal.java  AnimalMap.java  WaitForKey.java  AnimalMapDeluxe.java  FrogMaker.java  AnimalSpin.java  BlastOff.java  Launch.java  MultiLaunch.java  FibWorker.java  FibLauncher.java  MultiLaunchSleep.java  MultiLaunchSleepJoin.java  BlastOffSleep.java  StdDraw.java  StdAudio.java  cat.jpg  cat.wav  dog.jpg  dog.wav  cow.jpg  cow.wav  frog.jpg  frog.wav 
- Mon. 2/19 No Class - President's Day
- Wed. 2/21 Lab: Threads
12 Fri. 2/23 Oops - Class Cancelled
13 Mon. 2/26 Concurrency Issues PDF BlastOff.java  Launch.java  SerialSearch.java  ParallelSearch.java  SearchWorker.java  BankAccount.java  RyanAndMonicaJob.java  Increment.java  IncrementWorker.java  Count.java  ArrayListBad.java  ArrayListBadReadOnly.java  ArrayListGood.java  Stats.java 
- Wed. 2/28 Networking / Socket Communication
Lab: Networking / Concurrency
PDF Java Ch. 10.6
HF Ch. 15
Magic8Server.java  Magic8Client.java  Magic8ServerPersist.java  Magic8ClientPersist.java  Magic8ServerMulti.java  Magic8ServerWorker.java  StdDraw.java 
14 Fri. 3/2 File I/O and Exceptions PDF Java Ch. 9
Java Ch. 3.3
PrintWriterDemo.java  AppendTextFile.java  Doubler.java  numbers.dat  EOFExceptionDemo.java 
15 Mon. 3/5 Regular Expressions and Enumerations PDF Compass.java  CompassTest.java  Planet.java  Room.java  AvgPerLine.java  avgnums.txt  GerundFinder.java  mobydick.txt 
- Wed. 3/7 Lab: Networking/Concurrency (continued)
16 Fri. 3/9 Using the Command Line PDF HelloWorld.java  Madlib.java  MadlibInput.txt  GerundFinder2.java 
- Mon. 3/12 No Class - Spring Break
- Wed. 3/14 No Class - Spring Break
- Fri. 3/16 No Class - Spring Break
17 Mon. 3/19 Linux Commands PDF
- Wed. 3/21 Lab: Fun with Linux
18 Fri. 3/23 Piping and Redirection
Take Home Exam 2 Handed Out
PDF
19 Mon. 3/26 Shell Scripts / Text Editors
Take Home Exam 2 Due
PDF
- Wed. 3/28 Lab: Shell Scripts
- Fri. 3/30 No Class - Mini Spring Break
20 Mon. 4/2 C++ Basics PDF Java App. 6
C++ Tutorial
Library Reference
- Wed. 4/4 Lab: First C++ Program
21 Fri. 4/6 Pointers PDF
22 Mon. 4/9 Memory Management PDF
- Wed. 4/11 Lab: Memory Management
23 Fri. 4/13 Review of Linked Lists PDF
24 Mon. 4/16 C++ Classes and Methods; Multiple Inheritance PDF
- Wed. 4/18 Lab: Object Oriented Programming in C++
25 Fri. 4/20 More on Classes; File Input/Output PDF
26 Mon. 4/23 Multi-File Programs PDF
- Wed. 4/25 Lab: makefiles and Multi-File Programs
27 Fri. 4/27 Take Home Exam 3 Handed Out Exam 3
- Mon.. 4/30 Take Home Exam 3 Due
- Thurs. 5/3 Optional Final Exam: 3:00-5:00


Page last updated: December 27, 2018