Advanced Java Programming

Course number: 51037 Location: Ryerson 251 Time: Thursday 5:30-8:30pm

Professor: Adam Gerber, PhD, SCJP Office: 3:30 to 5:30 Ryerson 255 (from 6/30/2016 on) Email: gerber@uchicago.edu

TA: David Selvaraj Office: Tuesdays Gleacher Center cafeteria 5pm to 7pm Email: david.m.selvaraj@gmail.com


Course description

In this course, you will develop the skills required to create sophisticated Java applications. We will cover RESTful web-services, Spring Framework, Git, Maven, Java features such as new I/O, advanced java concurrency, the JavaFX framework, and various technologies of Java8, including functional programming and the streams API. We will also discuss advanced generics and important design patterns used in Java. A strong emphasis will be placed on applying sound principles of contemporary software engineering to real-world problems. Students are required to bring their laptops and follow-along during labs. All required readings and videos must be read/watched prior to the date under which they are listed below. This course will be taught as a seminar. You will be expected to contribute in the following ways: do original research on Java and Java ecosystem technologies, organize your research with powerpoint slides and bitbucket projects, and effecively communicate and share your research to the rest of the class.

Please create and register your bitbucket account here: https://docs.google.com/forms/d/1T_5VCZoRimBx0nn3_cWP1e5MfUt01bnN90Rb7_KTsHY/viewform


Content: All the course content, including; videos, slides, projects, and labs are all located http://gerber.cs.uchicago.edu/advjava/content/
Textbooks We will be using:
Java8 in Action by Urma ISBN: 978-1617291999
Core Java for the Impatient by Horstmann ISBN: 978-0-321-99632-9
Spring REST by Varanasi ISBN: 978-1-4842-0823-6.
Slides Slides are available here (http://gerber.cs.uchicago.edu/advjava/content/slides)
Slack: Please join the slack channel. We will be using this to communicate during class: https://mythicmobile.slack.com/messages/aj2016/
Software Tools Here's a checklist of software we are using in this class

Evaluations

The final grade is determined as
Weight
proClient 10%
proImageshop 10%
proThreaded 10%
proWebservice 20%
Team Project/Presentation 25%
Final exam 15%
Class participation 10%

Individual Projects due dates

A cron script will be triggered at 11:59pm on the due date which will fetch your project from your private remote bitbucket repository.Your projects will be graded according to the state your project was in when the chron script ran. No exceptions.

Due Date
proClient July 13 11:59pm
proImageshop July 27 11:59pm
proThreaded August 10 11:59pm
proWebservice August 24 11:59pm

 

Possible Curve

The MPCS policy allows for 30% maximum of "A"s to be awarded in a course. Your final raw score may be either curved up or down. If there are more than 30% of the raw final scores that fall into the "A" range (93-100), I must curve the raw scores down, however I usually curve the raw scores up to award as many "A"s as possible.

Projects evaluation criteria



Getting Help

I will be available both by appointment and at office hours before class each day that the class meets. The pace of this course is rapid, so please come to office hours if you feel you're falling behind or need help. Also the TA has office hours (see above). Please feel free to email me or post to Piazza. Students are encouraged to help their peers by posting on Piazza: https://piazza.com/uchicago/summer2016/mpcs51037/home