Calendar

Week 1, Jan 16-18: Course Info; Introduction to Computers

Day Readings/Assignments Resources
Wed, Jan 16th Lecture 1
Thu, Jan 17th
    No lab this week!
    Fri, Jan 18th Lecture 2

    Week 2, Jan 21-25: Algorithms; Programming Languages; Java Programming

    Day Readings/Assignments Resources
    Mon, Jan 21
      MLK day - no class
    Wed, Jan 23 Finishing Lecture 2
    Thu, Jan 24
      No lab this week!
    Fri, Jan 25 Lecture 3
    Tracing Euclidean Algorithm

    Week 3, Jan 28 - Feb 1: Introduction to Java programming; Storing and manipulation numerical information

    Day Readings/Assignments Resources
    Mon, Jan 28 Lecture 3
    Lecture 4
    Hello.java
    Euclid.java
    Wed, Jan 30 [Lecture 5]
    Lecture 5
    Thu, Jan 31
    • Linux operating system, file system, working with terminal
    Lab 1
    Fri, Feb 1
    • Homework #1 is due!
    • Homework #2 assigned.
    • Topics: Storing and manipulation numerical information (continue)
    • Chapters 2.9 - 2.15 (finish)
    • Website for practice:http://codingbat.com/java
    Finishing Lecture 5

    Week 4, Feb 4-8: Characters and Strings

    Day Readings/Assignments Resources
    Mon, Feb 4 Finishing "Finishing Lecture 5" :)
    Wed, Feb 6 Lecture 6
    Distance.java
    Thu, Feb 7
    • Basic file editing and Java programming
    Lab 2
    Fri, Feb 8 Finishing Lecture 6
    CharInt.java ToUpper.java String01.java

    Week 5, Feb 11-15: Conditionals, Boolean expressions. Loops.

    Day Readings/Assignments Resources
    Mon, Feb 11
    Wed, Feb 13 DivisionCheck.java
    Thu, Feb 14
    • BlueJ IDE
    • Not a part of the lab, but I recommend to take a look at Eclipse IDE (for example, a good video)
    Lab 3
    Fri, Feb 15
    • Topics: nested if-else statements
    • Read: Sections 3.3 - 3.13
    Substring.java
    IsSubstring.java
    LetterGrade.java
    LetterGrade2.java

    Week 6, Feb 18-22: Loops.

    Day Readings/Assignments Resources
    Mon, Feb 18
    • Topics: switch statement, conditional expressions, while loop, do-while statement.
    • 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
    PrintStars.java
    Wed, Feb 20
    Thu, Feb 21
    • Command line arguments (yes, you will learn about these magic String[] args)
    • If, if-else, and switch Statements
    Lab 4
    Fri, Feb 22

    Week 7: Feb. 25 - Mar 1 :: Exam 1, Loops, Methods

    Day Readings/Assignments Resources
    Mon, Feb 25
    Wed, Feb 27 Divisors.java
    Thu, Feb 28
    • Simple for-loops
    Lab 5
    Fri, Mar 1
    • Topics: Algorithms, nested Loops
    CommonDivisors.java
    FindChar.java
    MultiplicationTable.java

    Week 8: Mar. 4-8 :: Methods / Functions

    Day Readings/Assignments Resources
    Mon, Mar 4 Section 5 slides
    Wed, Mar 6 Section 5 slides
    Thu, Mar 7
    • File parsing using Scanners
    Lab 6
    Fri, Mar 8
    • Topics: Call stack, pass by value, variable scopes
    • Read: Finish chapter 5
    PassByValue.java

    Week 9: Mar. 11-15 :: Spring Break

    Day Readings/Assignments Resources
    Mon, Mar 11 Spring Break
    Wed, Mar 13 Spring Break
    Thu, Mar 14 Spring Break
    Fri, Mar 15 Spring Break

    Week 10: Mar 18 - 22 :: Arrays

    Day Readings/Assignments Resources
    Mon, Mar 18 Variable types slides
    Arrays in Java
    Wed, Mar 20
    • Topics: Arrays in Java: declaring an array, accessing elements
    • Reading: Chapter 6 (6.4 - 6.8)
    Thu, Mar 21
    • Debugging with BlueJ (try the same with Eclipse, JIdea or other IDE you choose to use)
    Lab 7 - "Debugging with BlueJ"
    Fri, Mar 22
    • Topics: Arrays in Java: passing and returning arrays to/from methods, copying arrays, changing size, linear search
    • Reading: Finish Chapter 6
    • Finish Lecture 9. The array data structure
    CopyArray.java
    DynamicArray.java
    LinearSearch.java

    Week 11: Mar. 25-29 :: Arrays

    Day Readings/Assignments Resources
    Mon, Mar 25 ReverseArray.java
    Wed, Mar 27
    Thu, Mar 28
    • Lab 8 topic: Methods and scoping
    Lab 8 - Methods and Scoping
    Fri, Mar 29
    • Topics: algorithms again: sorting algorithms (selection sort, insertion sort), sieve of Eratosthenes
    • Reading: Keep reading Chapter 7
    • Lecture on 2-dimensional arrays in the online lecture notes
    BinarySearch.java
    SelectionSort.java
    InsertionSort.java

    Week 12: Apr. 1-5 :: Classes and Objects; Exam 2

    Day Readings/Assignments Resources
    Mon, Apr 1
    • Topics: Continue with multidimensional arrays
    Multidimensional arrays slides
    MatrixMult.java
    Wed, Apr 3 Classes and objects slides
    TestSimpleCircle.java
    TestTV.java
    Thu, Apr 4
    • Lab 9 - "Single Dimension Arrays and Methods"
    Lab 9 materials
    Fri, Apr 5
    • Exam 2 (through arrays)
    Sample exam 1
    Sample exam 2
    Sample exam 3

    Week 13: Apr. 8-12 :: Classes, Modular programming

    Day Readings/Assignments Resources
    Mon, Apr 8 Classes and objects slides

    TestCircleWithStatic.java
    TestCircleWithPrivate.java
    TotalArea.java
    Wed, Apr 10
    • Topics: String class; Object-Oriented programming
    • Reading: Chapter 9 (9.1-9.3), Chapter 10 (10.1 - 10.5)
    Thu, Apr 11
    Fri, Apr 12
    • Topics: classes and objects. Example.
    Homework 8 is assigned!

    Week 14: Apr. 15-19 :: Recursion

    Day Readings/Assignments Resources
    Mon, Apr 15 String class slides
    Thinking in classes slides
    Wed, Apr 17
    • Topics: Recursion.
    • Reading: Read: Chapter 20, Sections 20.1-20.2
    Thu, Apr 18
    Fri, Apr 19
    • Topics: Recursion
    • Read: Chapter 20, Sections 20.3-20.4
    Factorial.java
    RecursivePrintStars.java
    RecursiveFindChars.java

    Week 15: Apr. 22-26 :: Recursion and Review

    Day Readings/Assignments Resources
    Mon, Apr 22
    • Topics: Recursion

    Wed, Apr 24
    • Topics: Recursion (example)
    CountWays.java
    Thu, Apr 25
    Fri, Apr 26
    • Topics: debugging with Eclipse
    Palindrome.java

    Week 16: Apr. 29 :: Last Day of Class

    Day Readings/Assignments Resources
    Mon, Apr 29
    • Review!

    Final Exam: Math Block Final: TUESDAY MAY 7, 12:30-3pm