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 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/2018 Finish Pi Setup
11/7/2018 HTML backgrounds, DIV sections, NavBars in Bootstrap, Responsive CSS
11/9/2018 Lab 7 Lab 7
11/12/2018 Containers, layouts, grid system in Bootstrap
11/14/2018 Introduction into NodeJS Read chapters 1 and 2 in MERN Quick Start Guide Project 3
11/16/2018 Lab 8 Lab 8 Note there is a typo in part 3 and 4. There should be an extra ) after res.send('hello there'); }
11/19/2018 Apache Hadoop and MapReduce. Example of wordcount. Hadoop Slides
11/26/2018 GET/POST requests. Input, forms, method, actions. Handling posts in Express. View Engine.
11/28/2018 Design elements of bootstrap
11/30/2018 Project 3 introductions
12/3/2018 Introduction to React Read chapter 6 in MERN Quick Start Guide
12/5/2018 Guest Lecture in UX UI Design
12/7/2018 Lab 9 Final Review Sheet Lab 9
12/10/2018 Connecting React to Express Backend Final Files
Express Index.js
React src/App.js
React src/Home.js
React src/Features.js
React src/Navbar.js
12/11/2018 React Native and Expo Demo React Native Documentation
12/12/2018 Final Review Final In Class Review