90 likes | 163 Views
Explore Java programming, algorithm design patterns, and recursive coding techniques to improve performance. Understand the intricacies of ArrayLists and delve into performance analysis. Stay updated with class deadlines and learn key concepts from Professor John Peterson.
E N D
CS 280Data Structures Professor John Peterson
Goals • Understand “Programming in the small” • Java programming • Know what’s under the hood in complex libraries (ArrayList) • Understand performance issues • Understand algorithm design patterns • Use recursion in code and structure
Class Calendar • Wednesday: homework is due • Wednesday: 20 minute work period • Friday: project is due • Friday: 10 minute quiz • 3 big tests (every 5 weeks – there WILL be a final!)
Late Work • Homework / project is due at the start of class on the date due. Submit via email. • Assignments may be submitted at the start of the class after the due date for 1 letter grade off. • Any later will not be accepted • Solutions to programs will be available
Syllabus DYNs • Academic Honesty – please DON’T use the solutions passed out last year. I’ll be changing the assignments somewhat. • Seminars – note the bonus for attending! • Web page (wiki.western.edu)
Getting Help • Work together – the study sessions in the library are great! • Talk to me • USE THE WIKI! When you ask via the wiki everyone benefits. If you email questions to me I will answer in the wiki.
Program #1 Off to the wiki!
Understanding Performance We want to study how fast a program runs. The speed is usually dependent on one or more parameters. For simplicity, we’ll assume that these is a single parameter, N, that represents some aspect of the program input. For sorting, N = number of elements to sort
Performance We don’t care about absolute performance – only relative performance. That is, if we double n, does the time it takes to run the program double? Triple? Many things affect performance (like what?) – we will ignore everything except the “statement count”.