CSC 1051: Algorithms and Data Structures I

  Fall 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:   Pourush Shrestha  ;  Office Hours Mendel G54 Mondays: 2:30-4:30pm; Tuesdays 3-5pm.

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
28
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 8/29/18

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

Thursday 9/6/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 9/4/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 9/5/18 rubric



Sep
11
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 9/12/18 rubric


Sep
18
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 9/19/18 rubric

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

slides - 4up

warmup exercises and lab 5 prep
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
QueueingTheory_Start.java
MonteCarloPI.java  PalindromeTester.java

Lab 5

Project 4  due Wednesday 9/26/18 rubric



Oct
2

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 Wednesday 10/3/18 rubric

Oct
9

Nested loops & Review
(No new handout, loops material continued from last week. Lab 7 focus on for-loops)

Thursday: 10/11/18  MIDTERM EXAM
                                          in Mendel 101


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 Tuesday 10/23/18
rubric 
(project is due after break, but note irregular TUESDAY due date)
Project 6 questions - Fall 2018
             Oct 16-21           Fall Break                                                
Oct
23
Designing Classes
user-defined datatypes; class definitions as blueprints for objects; constructors; method definitions
slides - 4up
warmup exercise
Thursday 10/25/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



Lab 8 Thursday 10/25/18
 
Project 7  due Thursday 11/1/18
rubric
Note: deadline extended
Oct 30
Designing Classes (continued)
methods, parameters and return types, UML class diagrams
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; quiz 6 on Thursday)
Nov
6
JavaFX and Graphics
Image representation, graphics primitives, introduction to JavaFX
slides - 4up

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
Lab 9

Project 8  due Wednesday 11/14/18
Project 8 gallery (from this semester)
rubric

Nov
13
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

Project 9  due Wednesday 11/27/18
rubric
Nov
20
Arrays  (continued)
Arrays as parameters, command-line arguments, polygons and polylines
arrays of objects
slides - 4up

Wednesday/Thursday: NO CLASS 
Thanksgiving Recess

Reading:  8.3, 8.4, 8.6, 8.7

Code:
Shapes.java     Rocket.java
DVD.java     TestDVD.java
Movies.java   DVDCollection.java
(this version of DVDCollection.java is slightly simplified from the one in the textbook.)  
Lab 11
Nov
27
Arrays  and File Input
2D arrays, processing row by row and column by column
Iterators, using Scanner to input from files,
IOException

Tuesday: finish Lab 11
Wednesday: Lab 12
Thursday: Quiz 9 & start file input

(warmup exercise for file input)
(warmdown exercise for file input)
Reading:  5.5

Code:
TwoDArray.java  SodaSurvey.java
FileInput.java
SomethingToDoWithFiles.java URLDissector.java
ScanFromString.java
data files:
onehundredints.txt urls.txt  titanic.txt  wiki-vote.txt





Lab 12


Dec
4
File I/O and Exceptions
I/O streams, the PrintWriter class, exception handling, Java Exception class hierarchy
slides - 4up

Tuesday: Lab 13
Wednesday: File output & exceptions
Thursday: Lab 14

(warmup exercise for file OUTPUT)
Reading:  11.1-11.3, 11.5,11.6
Excercises: TBA

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

Lab 14

Project 10  due Thursday 12/13/18




Dec
11
Review & wrap-up
last class notes

Tuesday 12/11: NO CLASS (Friday schedule)
Wednesday 12/12: (Optional) finish Lab, work on project 10
Thursday 12/13:
Last class - Wrapup & review




End of semester and Exam week:

Office hours:
Tuesday Dec 11: 12-2pm
Wednesday Dec 12: 12-3pm
Thursday Dec 13: 3-5pm
Monday Dec 14: 12-1pm

Extra Review Session: Tuesday Dec 18, 10am-12pm, Mendel G86

Other help during finals:
* Last official day of CSC Peer Tutors for the semester will be Thursday, 12/13.

* Reading Day Tutoring at the Learner's Studio (Old Falvey 301):  CSC tutors will be available from 12:00-4:00 on reading Day (Dec 14). You can sign up for these sessions using WCOnline, but through The Learners’ Studio schedule (rather than CSC).


Final Exam :  Wednesday December 19th from 11:30 to 2:00.
Section 1: Mendel G86
Section 2: Mendel G87


Websites for previous semesters:   

 

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