CSC 1051: Algorithms and Data Structures I

  Spring 2018

Dr. MaryAngela Papalaskari  Office Hours Mendel 162C: Tuesdays: 11:30am- 1:00pm; Wednesdays: 10:30am-11:30am; Wednesdays: 1:30pm-3:00pm; and by appointment
Teaching Assistant:   Kanchana Hegde  ;  Office Hours Mendel G54 Tuesdays  1-4pm  & Wednesdays 4 - 6pm

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
Jan
16

Course introduction
Overview of Computer Science
History of Computing
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 
Questionnaire

Install jGrasp on your laptop

Lab 1 Wednesday 1/17/18

Jan
23
Data and algorithms
Variables, assignment statements, arithmetic expressions, interactive programs
slides - 4up

Thursday 1/25/18: Quiz 1
Weekly quiz - And every Thursday from now on, unless otherwise noted
Reading: Section   2.1 - 2.4 and 2.6

Exercises:
EX EX 2.3 - 2.10 and 2.12 (& exercises in slide handouts)

Code:
 Roses.java  Facts.java   Countdown.java GPA.java  TellMeAboutYou.java


Lab 2 Tuesday 1/23/18
Labs will be on Tuesdays from now on, unless otherwise noted.
Be sure to always submit the lab prep through blackboard by 8am on lab day.

Project 1 - due Wednesday 1/24/18



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




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 Wednesday 1/31/18



Feb
6
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 Wednesday 2/7/18

Feb
13
Data representation, classes & objects
Binary representation, Java primitive data types, type conversions, using java classes and objects, the Java APIJava API
Random, Math, String classes

slides - 4up
Reading: Sections 1.1, 2.3, 2.5, 3.1-3.6

Exercises:
EX 1.2-1.6
EX 2.11,
EX 3.1-3.10

Code:
  Quadratic.java  RandomNumbers.java
MonteCarloPI.java  PalindromeTester.java

Lab 5

Project 4 - due Wednesday 2/14/18



Feb
20



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 pg268)
Exercises: EX6.1 - EX6.12

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

Lab 6

Project 5 - due Tuesday 2/27/18
(Note: deadline extended)


Feb
27

Nested loops & Review
(No new handout, loops material continued from last week)

Thursday: 3/1/18  MIDTERM EXAM


Reading: Review everything!

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

Lab 7
Project 6 - due Wednesday 3/14/18

All the cool project 6 questions explored by students this semester!
                         Spring Break                                                
Mar
13
Designing Classes
user-defined datatypes; class definitions as blueprints for objects; constructors; method definitions
slides - 4up

Thursday 3/15/18:  Lab 8 (No quiz this week)
Reading: Sections 4.1-4.5
Exercises: EX 4.1-4.4, 4.10, 4.11
Code:
Account.java,   Transactions.java (our versions)
Account.java   Transactions.java (book version)
Die.java  RollingDice.java

project 6 rubric

Lab 8
 

Project 7 - due Wednesday 3/28/18
Mar
20
Designing Classes (continued)
methods, parameters and return types, UML class diagrams
Wednesday,Thursday: NO CLASS
(University closed) 
Reading: Sections 4.1-4.5
Exercises: EX 4.5-4.8, 4.12
Code:
Account.java,   Transactions.java (our versions)
Account.java   Transactions.java (book version)
Die.java  RollingDice.java

(no lab this week, work on project 7)
Mar
27
Designing Classes (continued)
encapsulation and visibility modifiers

Tuesday: Quiz 5, lecture, work on proj 7
Wednesday: Project 7 due, start JavaFX
Thursday: NO CLASS
  Easter Recess
Reading: Sections 2.5, 3.1-3.5

Exercises: EX 3.14-3.19, 4.9, 4.12
Code: ImInUrClassMessingUrInstanceData.java
(no lab this week, work on project 7)




Apr
3
JavaFX and Graphics
Image representation, graphics primitives, introduction to JavaFX
slides - 4up

Tuesday: University closed
Wednesday: Start Lab 9/ start Arrays
Thursday: University closed
(no Quiz this week)
Reading: Sections 3.9-3.11, 4.6, 4.7
Exercises: EX 3.14-3.19, 4.9, 4.13
Code: HelloJavaFX.java Einstein.java Snowman.java ArcDisplay.java FontDemo.java GO Cats!!!!
Lab 9

Project 8 - due Wednesday 4/18/18
(Note: deadline extended)

Project 8 gallery
Apr
10
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.10
Code:
BasicArray.java  LetterCount.java   ReverseOrder.java  LetterCount.java

Lab 10




Apr
17
Arrays and File input
Arrays as parameters, command-line arguments, polygons and polylines
arrays of objects, 2D arrays, processing row by row and column by column
Iterators, using Scanner to input from files,
IOException
warmup exercise for file input
slides - 4up

Reading:  8.3, 8.4, 8.6, 8.7, 5.5

Code:
Shapes.java     Rocket.java
DVD.java     TestDVD.java
DVDCollection.java    Movies.java
TwoDArray.java  SodaSurvey.java
FileInput.java SomethingToDoWithFiles.java URLDissector.java
data files:
urls.txt  onehundredints.txt 
wiki-vote.txt


Lab 11



Project 9  - due Wednesday 5/2/18
Apr
24
File I/O and exceptions
I/O streams, the PrintWriter class, exception handling, Java Exception class hierarchy
warmup exercise for file output
slides - 4up

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

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


Lab 12


May
1
Review & wrap-up
last class notes

Tuesday 5/1: NO CLASS (Friday schedule)
Wednesday 5/2: NO CLASS (Monday schedule)

Last class: Thursday 5/3




Lab 13 (optional)

End of semester and Exam week:

Office hours:
Tuesday, April 24: Regular Tuesday hours (instructor & TA)
Wednesday, April 25:  Instructor regular  hours canceled (but TA hours 4-6pm  are still held)
Friday, April 27:  9:30am-11:30am
Monday, April 30:  10:30am-11:30pm
Tuesday, May 1: 1:00-4:00 pm (Mendel162C)  & TA office hours 4:00-5:30pm (Mendel G54)
Wednesday May 2: 12:00-2:00pm
Friday, May 4: 9:00-11:00 am
Tuesday, May 8: 12:00 pm - 2:00 pm
Thursday, May 10: 10:00 am-12:00pm

Final Exam :  Saturday, May 5, 2018, 4:15 pm - 6:45 pm, Mendel 102

Websites for previous semesters:   

  Spring 2017  Fall 2016   Spring 2016    Fall 2015        Spring 2015      Fall 2014