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 pro- gramming 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; MEAN stack; command line interface.

Course Schedule

DateClass SummaryExamples and CodeHomework
8/23/2017 Syllabus and course expectations. Introductions. Review Chapters 1 - 3 in Object oriented structures in Java.
8/25/2017 Java review of 1052 material
8/28/2017 Cont. Java review of 1052 material - Stacks, Queues, Exceptions, Generics Review Chapters 4 - 6 in Object oriented structures in Java.
8/30/2017 Recursion - went over Factorial, Fibonacci, recursive vs iterative solutions Warm up Prime number example
9/1/2017 Recursion Lab Lab 1
9/4/2017 Labor Day no class
9/6/2017 Trees, Graphs, Adjacency Matrices, Implementation Read Chapter 10 in Object oriented structures in Java.
9/8/2017 Graphs Lab Lab 2
Supporting code Zip
9/11/2017 Adjacency Lists and Implementation
9/13/2017 Maps, Hashing, Hash functions, Collisions, Guest speaker Read Chapter 8 in Object oriented structures in Java.
9/15/2017 HashMaps Lab Lab 3
Supporting code Zip
9/18/2017 Finish up discussion on hashing, 2d buckets, chanining Project 1 assigned. PDF here
9/20/2017 Concurrency, Interference, Synchronization
9/22/2017 Concurrency Lab Lab 4
Also install Command Line on your machine suggested : Windows Linux Subsystem or Mac iTerm2
9/25/2017 Command Line History of Linux PDF Command Line Cheat Sheet
9/27/2017 Command Line, Redirects, Permissions
9/29/2017 Lab 5 Midterm Review Sheet Lab 5
10/2/2017 VIM and midterm review
10/4/2017 Midterm
10/16/2017 Introduction to HTML, common elements, attributes, DOM HTML basics
10/18/2017 Introduction to CSS Selectors, Properties, Embedding, Linking CSS Project 1 Due
10/20/2017 Lab 6, Setup Raspberry Pis Lab 6 icon 1 icon2 icon3
10/23/2017 Continue Setup of Raspberry Pis
10/25/2017 Introduction to Javascript and the differences to JAVA Javascript Reference
10/27/2017 Lab 7, Physical Computing Lab 7
10/30/2017 Introduction to the MEAN stack using express sample express setup Read Chapters 1-3 in Getting MEAN
11/1/2017 Express default setup, introduction to routing, introduction to Jade (Pug), installation of Bootstrap Project 2
11/3/2017 Lab 8 Lab 8 Instructions on Pi emailing on boot
11/6/2017 HTML backgrounds, DIV sections, NavBars in Bootstrap, Responsive CSS
11/8/2017 Continue DIV sections, Bootstrap cards, colors, Font Awesome
11/10/2017 Lab 9 Lab 9
11/13/2017 Containers, layouts, grid system, buttons in Bootstrap Read Chapter 4 in Getting MEAN
11/15/2017 Cont. containers, LAMP vs MEAN similarities and differences
11/17/2017 Catchup on Lab 9 and Project 2 In class work
11/20/2017 Exploration into the HackerRank Platform. Solve me first. Simple Array Sum. Staircase. Migratory Birds Name your own project project
11/27/2017 GET/POST requests. Input, forms, method, actions. Handling posts in Express. Conditional statements in Jade (pug)
11/29/2017 Javascript Objects, JSON, Building a RESTful API in NodeJS.
12/1/2017 Quiz. Work time for name your own project
12/4/2017 JSON APIs
12/6/2017 JSON APIs Cont. Review Quiz material. Final Review Sheet
Final Review Game Final Express Code