CSCI 136
Fundamentals of Computer Science II
Spring 2019

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, web references and examples from the lecture (if any). Readings are posted for appropriate chapters in the book Java: An Introduction to Problem Solving and Programming, 7th edition by Walter Savitch, and in the book Head First Java by Kathy Sierra and Bert Bates (listed as HF), along with the appropriate pages. Both books are optional.

#DateTopicSlidesOptional ReadingExamples
1 Mon. 1/7 Course Overview
Javadoc
PDF Java Ch. 1-7
Java App. 5
HF Ch. 1-5
TestJavadoc.java  TryJavadoc.java 
- Wed. 1/9 Lab: Java Review
2 Fri. 1/11 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 
3 Mon. 1/14 Linked Lists PDF Java Ch. 12.3 LinkedList.java  Quote.java 
- Wed. 1/16 Lab: Linked Lists
4 Fri. 1/18 Stacks and Queues PDF Java Ch. 12.3 StackOfStrings.java  QueueOfStrings.java  ReverseWords.java  Speller.java  Zipped Letter Sounds  Balanced.java  StdAudio.java  StdDraw.java  StackOfStringsArray.java 
- Mon. 1/21 NO CLASS - Martin Luther King Day
- Wed. 1/23 Lab: Stacks and Queues
5 Fri. 1/25 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/28 Hash Maps, Performance PDF Java Ch. 12.2 HashMapDNS.java  Animal.java  AnimalSpin.java  AnimalMap.java  HashMapIter.java  Rabbit.java  rabbit.png  ThreeSum.java 
- Wed. 1/30 Lab: Abstract Data Types
7 Fri. 2/1 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/4 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/6 Lab: Interfaces
9 Fri. 2/8 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  ExponentiateSolution.java 
10 Mon. 2/11 Recursion II
Take Home Exam 1 Due
PDF Java Ch. 11.2 Brownian.java  PlasmaCloud.java  RecursiveMystery.java  StdDraw.java  StdRandom.java 
- Wed. 2/13 Lab: Recursion
11 Fri. 2/15 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  Square.java  PrettySquares.java  CircleWorker.java  ThreadZoo.java 
- Mon. 2/18 NO CLASS - Presidents Day
- Wed. 2/20 Lab: Threads
12 Fri. 2/22 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  ArrayListGood.java  Stats.java 
13 Mon. 2/25 Networking / Socket Communication PDF Java Ch. 10.6
HF Ch. 15
Magic8Server.java  Magic8Client.java  Magic8ServerPersist.java  Magic8ClientPersist.java  Magic8ServerMulti.java  Magic8ServerWorker.java  Stats.java  StdDraw.java 
- Wed. 2/27 Lab: Socket Communication / Concurrency
14 Fri. 3/1 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/4 Regular Expressions and Enumerations PDF
Practice
Compass.java  CompassTest.java  Planet.java  Room.java  AvgPerLine.java  avgnums.txt  GerundFinder.java  mobydick.txt 
- Wed. 3/6 Lab: Socket Communications (continuted)
16 Fri. 3/8 Using the Command Line
Take Home Exam 2 Handed Out
PDF putty.exe  winscp.exe 
17 Mon. 3/11 Linux Commands
Take Home Exam 2 Due
PDF
- Wed. 3/13 Lab: Fun with Linux
18 Fri. 3/15 Piping and Redirection PDF
- Mon. 3/18 NO CLASS - Spring Break
- Wed. 3/20 NO CLASS - Spring Break
- Fri. 3/22 NO CLASS - Spring Break
19 Mon. 3/25 Text Editors / Shell Scripts PDF
- Wed. 3/27 Lab: Shell Scripts Nano Cheat Sheet
20 Fri. 3/29 C++ Basics I PDF Java App. 6
C++ Tutorial
Library Reference
21 Mon. 4/1 C++ Basics II PDF array.cpp  charsAndStrings.cpp  Pointers.cpp  MorePointers.cpp  SafePointers.cpp  VoidPointers.cpp  FunctionPointers.cpp 
- Wed. 4/3 Lab: First C++ Program
22 Fri. 4/5 Memory Management PDF MemAlloc.cpp  Structs.cpp  ArrayOfStructs.cpp 
23 Mon. 4/8 Review of Linked Lists PDF
- Wed. 4/10 Lab: Memory Management
24 Fri. 4/12 C++ Classes and Methods PDF Rectangle.cpp  Constructor.cpp  OverloadedConstructor.cpp  SubtleConstructor.cpp  PointersToClasses.cpp  OverloadedOperators.cpp  OverloadedOpNonmember.cpp  This.cpp  Static.cpp  ConstMemberFunctions.cpp  ConstOverloading.cpp  TemplateClasses.cpp  TemplateSpec.cpp  Destructors.cpp  CopyConstructor.cpp 
25 Mon. 4/15 C++ Classes: Friendship, Multiple Inheritance PDF FriendFunction.cpp  FriendClass.cpp  Inheritance.cpp  ConstructorsAndDerivedClasses.cpp  MultipleInheritance.cpp  Polymorphism.cpp  Virtual.cpp  Abstract.cpp  DynamicPoly.cpp  FileIO.cpp  FilePosition.cpp  mobydick.txt  BinaryFile.cpp 
- Wed. 4/17 Lab: Object Oriented Programming in C++
Take Home Exam 3 Handed Out
- Fri. 4/19 NO CLASS - Spring Mini-Break
26 Mon. 4/22 Multi-File Programs, File I/O
Take Home Exam 3 Due
PDF Mathematics.h  Mathematics.cpp  MathTester.cpp  makefile 
- Wed. 4/24 Lab: makefiles and Multi-File Programs
27 Fri. 4/26 Review
- Mon. 4/29, 3:00-5:00 Optional Final Exam


Page last updated: December 20, 2019