CSC 1051: Algorithms and Data Structures I

  Fall 2016

Dr. MaryAngela Papalaskari  Office Hours Mendel 162C: Tuesdays: 1:30-3:30pm; Fridays: 9:30-10:30am; and by appointment
Teaching Assistants:
Kyle Recktenwald  Wednesdays 4-6pm Mendel 292             *            Krishna Palem  Mondays 1-3pm Mendel 158;
Thursdays 11:30-1:30 Mendel 292

course information                blackboard                  piazza                   CSC peer tutors                 exam archive

Schedule and materials will be updated frequently. Please bookmark and check often.

Week
Topic
Reading and Exercises
Labs, Projects, and other assignments
Aug
25

Course introduction
Overview of Computer Science
History of Computing
Data representation
Introduction to Java
slides - 4up
Reading: Chapter 1
Exercises:
EX 1.14, 1.15, 1.16, 1.17, 1.19, 1.20


Code: Lincoln.java  Lincoln2.java  Lincoln3.java 
Install jGrasp on your laptop

Lab 1

Questionnaire
Aug
30
Data and algorithms
Variables, assignment statements, arithmetic expressions, interactive programs
slides - 4up


Reading: Section   2.1 - 2.4 and 2.6

Exercises:
EX EX 2.3 - 2.10 and 2.12 (& exercises in slide handouts)
[Textbook 7th edition numbers: 2.6-2.9 and 2.11]
Code:
  Roses.java  Facts.java   Countdown.java GPA.java  TellMeAboutYou.java


Lab 2

Project 1 - due Friday 9/2/16




Sep
6
Control flow& conditionals
if/else statements, boolean expressions, block statements, nested statements
slides - 4up


Tuesday: 9/6/16 Quiz 1
(Weekly quiz - Every tuesday from here on, unless otherwise noted)


Reading: Sections 5.1, 5.2
pages 208-218 and 221-226 (skip coin example in listings 5.3, 5.4 for now)

Exercises:
EX 5.1-5.5
[Reading and exercises are the same for textbook 7th and 8th editions]
Code: Echo.java  GasMileage.java  GPA.java  GPA_Updated.java  MaximumVersionX.java



Lab 3

Project 2 - due Friday 9/9/16



Sep
13
Repetition Structures
Algorithms with loops; the Java while statement
slides - 2up



Reading: Section 5.4

Exercises: EX 5.7-5.11

Code:   SquaresAndCubes.java, PowersOfTwoAndThree.java
PrimeFactors.javaManyBoxes.java
Lab 4

Project 3 - due Friday 9/16/16

Sep
20
Data representation and Applets
Binary numbers, binary representation of text and images, Java primitive data types, type conversions, java applets and the Graphics class

slides - 4up
Quiz 3

Reading: Sections 1.1, 2.3, 2.7-2.9

Exercises:
EX 1.2-1.6 (Ch 1)
EX  2.14-2.19(Ch 2)
[ Textbook 7th edition numbers:
Ch 1: same as above
Ch 2:  2.13-2.18]
Code: Einstein.java, Snowman.java  Snowman.html

Lab 5
Project 4 - due Friday 9/23/16



Sep
27
Using classes and objects
The Java API;
Random, Math, String classes
slides - 4up

Reading: Sections 2.5, 3.1-3.5

Exercises: EX 2.11, 3.1-3.10
[ Textbook 7th edition numbers: 2.10, 3.1 - 3.9
(Exercise 3.3 is new to 8th ed)]

For midterm next week: Review sections and material we covered from Chapters 1, 2, 3, 5 and work through sample algorithm questions

Code:
  Quadratic.java  RandomNumbers.java PalindromeTester.java





Lab 6

Project 5 - due Tuesday 10/4/16

project 5 gallery
Oct
4

Graphical user interfaces
Java containers: JFrame, JPanel, JLabel
slides - 4up
Tuesday: 10/4/16 NO QUIZ (short lecture & review)
Thursday: 10/6/16 MIDTERM EXAM
Friday: Lab 7

Reading: Sections 3.9 - 3.11 & 4.6 (only first example, stop at page 185)

Code:  Authority.java NestedPanels.java LabelDemo.java
SmilingFacePanel.java SmilingFace.java


Lab 7
                         Fall Break                                                
Oct
18
Designing Classes
user-defined datatypes; class definitions as blueprints for objects; constructors; method definitions
slides - 4up
Reading: Sections 4.1-4.5
Exercises: EX 4.1-4.4
Code:
Account.java,   Transactions.java (our versions)
Account.java   Transactions.java (book version)
Die.java  RollingDice.java



Lab 8
 
Project 6 - due Friday 10/21/16
Oct
25
Selection and Repetition revisited
the conditional operator; the switch statement;  do and for loops
slides - 4up


Reading:  6.1-6.6 (skip for-each loop pg282)
Exercises: EX6.1 - EX6.17

Code:
 
GradeReport.java    SwitchExample.java
  EvenOdd.java    ReverseNumber.java
  ReverseNumberAsString.java    Stars.java
  ResponseTimeExperiment.java


Lab 9


Project 7 - due Friday 10/28/16
Nov
1
Arrays
declaration, instantiation, initialization
processing arrays using for-loops
initialization lists and for-each loops
slides - 4up
Reading: 8.1, 8.2
Exercises: EX8.1-8.8
Code:
BasicArray.java  LetterCount.java   ReverseOrder.java  LetterCount.java

Lab 10

Project 8 - due Friday 11/4/16
Nov
8

Arrays, continued
arrays as parameters, command-line arguments, polygons and polylines
arrays of objects
slides - 4up
Reading: 8.3, 8.4, 8.7
Exercises: EX8.9-8.10

Code:
TrianglePanel.java
DVD.java     TestDVD.java
DVDCollection.java    Movies.java


Lab 11


Project 9-- due Friday 11/11/16
Nov
15
Arrays, continued
2D arrays, processing row by row and column by column

Iterators and File input
iterators, using Scanner to input from files,
IOException
warmup exercise
 slides - 4up

Reading:  5.5, 8.6


Code:
FileInput.java SomethingToDoWithFiles.java URLDissector.java
TwoDArray.java  SodaSurvey.java

data files:
urls.txt  onehundredints.txt  eightwords.txt 



Lab 12

Project 10 - due Friday 11/18/16



Nov
22
Tuesday: Lab 13, NO QUIZ

Thursday, Friday: NO CLASS
THANKSGIVING Recess



Lab 13


Nov
29
File I/O and exceptions
I/O streams, the PrintWriter class, exception handling, Java Exception class hierarchy
slides - 4up


Reading:  11.1-11.3, 11.5,11.6
Excercises: TBA

Code:
TestData.java  Zero.java   ProductCodes.java 
CreatingExceptions.java
Lab 14


Project 11 - due Friday 12/2/16
Dec
6
Events & Listeners 
events, listeners, the Timer class, animation
slides - 4up

Review & wrap-up
last class notes
Reading:  4.8, 4.9,  9.8

Code:
PushCounter.java
  PushCounterPanel.java
Rebound.java  ReboundPanel.java  happyFace.gif
Fahrenheit.java    FahrenheitPanel.java
Lab 15
 

Final Exam Week

Office hours
during exam week:
Wednesday December 14: 12-3:30
Monday December 19:  10-12:30

Extra - don't miss this! CSC Senior Projects Presentations
Final Exam :  Tuesday December 20,  11:30am-2:00pm - Mendel 102

Websites for previous semesters:   

    Spring 2016    Fall 2015        Spring 2015      Fall 2014      Spring 2014      Fall 2013     Spring 2013       Fall 2012     Spring 2012      Fall 2011