Office Hours:

T Th 10:00 AM -11:30 AM and by appointment

Course Description:

This is the third course introduction to problem analysis, algorithm design, and the implementation of algorithms in an object-oriented high-level language. It is intended for computer science majors, computer engineers, and other students with a significant interest in programming and computing. Java, Linux, and standard web programming languages will used in this course. Topics that we will cover include Object-oriented design; recursion; graphs; trees; hashing; physical programming; LAMP stack; MERN stack; command line interface.

Course Schedule

<
DateClass SummaryExamples and CodeHomework
8/27/2018 Syllabus and course expectations. Introductions. Review Chapter 1 in Object oriented structures in Java.
8/29/2018 Java review of 1052 material, Notation Review ComputeAvg.java Review Chapter 1-2 in Object oriented structures in Java.
8/31/2018 Cont. Java review of 1052 material - Stacks, Queues, Exceptions, Generics
9/3/2018 No class Labor Day
9/5/2018 Recursion - Factorial, Fibonacci, recursive vs iterative solutions Warm up Prime number example Review Chapters 4 - 6 in Object oriented structures in Java.
9/7/2018 Recursion Lab Watch: Tips and Guidelines, How companies evaluate technical interview
Recommended: Solve Recursion:Fibonacci Numbers and 2D Array - DS on HackerRank
Lab 1
9/10/2018 Trees, Graphs, Adjacency Matrices, Implementation Read Chapter 10 in Object oriented structures in Java.
9/12/2018 Graphs, Bridges of Konigsberg, Adjacency Lists Project 1 Assigned. Due Oct 3.
9/14/2018 Graphs Lab Bridges of Konigsberg Watch: How to Approach Behavioral Questions
Recommended: Solve Arrays: Left Rotation on HackerRank
Lab 2
Supporting code Zip
9/17/2018 Review of Lab1, Project 1, Hashing Read Chapter 8 in Object oriented structures in Java.
9/19/2018 Maps, Hashing, Hash functions, Collisions
9/21/2018 HashMaps Lab Watch: Solving Algorithms
Recommended: Solve Trees: Height of Binary Tree on HackerRank
Lab 3
Supporting code Zip
9/24/2018 Concurrency, Interference, Synchronization Read Chapter 4 in Object oriented structures in Java.
9/26/2018 Introduction to Linux Command Line Cheat Sheet
9/28/2018 Concurrency Lab Lab 4
Also install Command Line on your machine suggested : Windows Linux Subsystem (Ubuntu) or Mac iTerm2
10/1/2018 Command Line, Redirects
10/3/2018 Permissions, Networking, VIM
10/5/2018 Linux Lab Watch: 3 Algorithm Strategies
Recommended: Solve Dictionaries and Hashmaps: Two Strings on HackerRank
Lab 5
10/8/2018 Introduction to Javascript and the differences to JAVA Javascript Reference
10/10/2018 Introduction to HTML, common elements, attributes, DOM HTML basics Project 2
10/12/2018 HackerRank and Midterm review Midterm Review Have your Raspberry Pis in hand after Break
10/24/2018 Midterm
10/26/2018 Introduction to CSS Selectors, Properties, Embedding, Linking CSS
10/29/2018 CSS Continued... Bootstrap Reference
10/31/2018 Lab 6 Part 1 Introducted Lab 6 icon 1 icon2 icon3
11/5/2017 Finish Pi Setup
11/7/2017 HTML backgrounds, DIV sections, NavBars in Bootstrap, Responsive CSS
11/9/2017 Lab 7 Lab 7