Calendar

Week 1, Aug 28-30: Course Info; Introduction to Computers

Day Readings/Assignments Resources
Wed, Aug 28th Lecture 1
Fri, Aug 30th Lecture 2
Fri, Aug 30th
    No lab this week!

    Week 2, Sep 2-6: Algorithms; Programming Languages; Java Programming

    Day Readings/Assignments Resources
    Mon, Sep 2
      Labor day - no class
    Wed, Sep 4
    • Topics: number systems, algorithms, the structure of CPU (ALU, control unit, registers)
    • Read:
    Finishing Lecture 2
    Fri, Sep 6 Look over Lecture 3
    Tracing Euclidean Algorithm Tracing Euclidean Algorithm (solution)
    Fri, Sep 6
      No lab this week!

    Week 3, Sep 9-13: Numerical data types

    Day Readings/Assignments Resources
    Mon, Sep 9
    Wed, Sep 11 Lecture 6 slides
    Hello.java
    Installing JDK
    Windows Command Line tutorial
    Fri, Sep 13
    • Topics: Program structure. Expressions. Variables.
    • Read: Chapter 2, 2.1-2.12
    Finishing Lecture 6
    Fri, Sep 13 - Lab
    • Linux operating system, file system, working with terminal
    Read Lab 1 before coming to the lab
    Lab 1

    Week 4, Sep 16-20: Characters and Strings

    Day Readings/Assignments Resources
    Mon, Sep 16
    Wed, Sep 18
    • Topics: Variables and data types.
    • Read: Finish Chapter 2
    Fri, Sep 20 Distance.java
    Fri, Sep 20 - Lab
    • Basic file editing and Java programming
    Lab 2

    Week 5, Sep 23-27: Conditionals, Boolean expressions

    Day Readings/Assignments Resources
    Mon, Sep 23 LongFloat.java
    Wed, Sep 25
    • Topics: chars and Strings (concatenation, converting a number to string, and a string to number); Boolean variables and boolean expressions, comparisons
    • Read: Sections 3.3 - 3.13
    Char2Int.java
    ToUpper.java
    Fri, Sep 27
    • Topics: Boolean expressions, if-else statements
    • Read: Sections 3.3 - 3.13
    DivisionCheck.java
    IsSubstring.java
    LetterGrade.java
    Fri, Sep 27 - Lab
    • Errors and Escape Characters
    Read Lab 3 before coming to the class

    Week 6, Sep 30- Oct 4: Loops

    Day Readings/Assignments Resources
    Mon, Sep 30
    • Topics: finishing if-statements.
    • Read: Finish Chapter 3.
      • Especially 3.16 - Formatting Console output (we will not talk about this in class)
      • 3.17 - Operator precedence! Could be useful to know for the exam.
      • 3.19 - Gives some hints on how to debug a program.
      • Go thorugh exercices, try to solve some of them. If you have questions - ask the instructor or a TA.
    • Start Chapter 4: 4.1 - 4.3
    • Start reading Lecture 7. Loop statements
    • Homework #4 is assigned!
    LastDigit.java
    IsEven.java
    Grade.java
    Wed, Oct 2
    Fri, Oct 4
    Fri, Oct 4 - Lab
    • Command line arguments (yes, you will learn about these magic String[] args)
    • Conditional exucution
    Read Lab 4 before coming to the class.

    Week 7, Oct 7-11: Loops; Exam 1

    Day Readings/Assignments Resources
    Mon, Oct 7
    Wed, Oct 9 FindChar.java
    CountChar.java
    Divisors.java
    CommonDivisors.java
    GuessNumber.java
    Fri, Oct 11
    • Midterm Exam
    Previous years exams with solutions here
    Fri, Oct 11 - Lab
    • No lab this week!

    Week 8, Oct 14-18: Finishing Loops; Methods/Functions

    Day Readings/Assignments Resources
    Mon, Oct 14 Fall Break!
    Wed, Oct 16
    Fri, Oct 18
    • Topics: Nested Loops
    • Read: Start Chapter 5
    CircleArea.java
    Multiplication.java
    Thu, Oct 18 - Lab
    • Simple for-loops
    Read Lab 5 before coming to the class.

    Week 9, Oct 21-25: Methods; Types of Variables; Scope;

    Day Readings/Assignments Resources
    Mon, Oct 21 Lecture slides
    Wed, Oct 23 Lecture slides
    Fri, Oct 25 Lecture slides
    Quiz | Answers
    Fri, Oct 25 - Lab
    • Data Files and Loops
    Read Lab 6 before coming to the class.

    Week 10, Oct 28-31: Arrays; Searching/Sorting

    Day Readings/Assignments Resources
    Mon, Oct 28 Lecture slides
    Wed, Oct 30 Lecture slides
    Fri, Nov 1 Lecture slides
    DynamicArrayResize.java
    Fri, Nov 1 - Lab
    • Debugging
    Read Lab 7 before coming to the class.

    Week 11, Nov 4-8: 2D Arrays; Classes/Objects

    Day Readings/Assignments Resources
    Mon, Nov 4 Lecture slides
    Wed, Nov 6 Searching.java
    Fri, Nov 8 Lecture slides
    Fri, Nov 8 - Lab
    • Methods and Scoping
    Read Lab 8 before coming to the class.

    Week 12, Nov 11-15: Classes/Objects; Exam 2

    Day Readings/Assignments Resources
    Mon, Nov 11 MatrixMultiplication.java ConnectFour.java
    Wed, Nov 13
    • Topics: Multidimensional array: examples
    MatrixOperations.java
    Fri, Nov 15
    • Midterm Exam 2
    Sample exams
    Fri, Nov 15 - Lab
    • Single dimensional arrays
    Read Lab 9 before coming to the class.

    Week 13, Nov 18-22: Classes; Strings (again)

    Day Readings/Assignments Resources
    Mon, Nov 18 Lecture slides
    Wed, Nov 13
    Fri, Nov 15
    Fri, Nov 15 - Lab
    • Lab 10: 2-dimensional arrays
    • Lab 11: Abstract Data Types and Objects
    • Note! We will be doing 2 labs!
    Read Lab 10 and Lab 11 before coming to the class.

    Week 14, Nov 25-29: Classes

    Day Readings/Assignments Resources
    Mon, Nov 25 Lecture slides
    Wed, Nov 27
    Fri, Nov 29
    • Thanksgiving Break!
    Fri, Nov 29 - Lab
    • Thanksgiving Break!

    Week 15, Dec 2-6: Recursion

    Day Readings/Assignments Resources
    Mon, Dec 2 Do it together quiz
    TestCircleWithStatic.java
    TestCircleWithPrivate.java
    TotalArea.java
    Wed, Dec 4
    • Topics: Recursion
    RecursivePrint.java
    Factorial.java
    Fri, Dec 6
    • Exam 2.1
    • Another view on objects and classes
    • Recursion: checking if a string is a palindrome
    IsPalindrome.java
    Quiz | Answers
    Fri, Dec 7 - Lab Read Lab 12 before coming to the class.

    Week 16, Dec 9: Last Day Of Classes

    Day Readings/Assignments Resources
    Mon, Dec 9
    • Topics: Recursion + Review for the final exam
    Final exam study guide

    Final Exam: Math Block Final: Wednesday DECEMBER 18, 6:30-9pm