470 likes | 579 Vues
COP 3503 FALL 2012 Shayan Javed Lecture 19. Programming Fundamentals using Java. Course wrap-up. What you should know. Object-Oriented Programming. What you should know. Object-Oriented Programming Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc.
E N D
COP 3503 FALL 2012ShayanJavedLecture 19 Programming Fundamentals using Java
What you should know • Object-Oriented Programming
What you should know • Object-Oriented Programming • Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc.
What you should know • Object-Oriented Programming • Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc. • File I/O
What you should know • Object-Oriented Programming • Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc. • File I/O • Searching and Sorting algorithms
What you should know • Object-Oriented Programming • Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc. • File I/O • Searching and Sorting algorithms • Basic Data Structures • Arrays, ArrayLists, Stacks, Queues, Linked Lists
What you should know • Object-Oriented Programming • Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc. • File I/O • Searching and Sorting algorithms • Basic Data Structures • Arrays, ArrayLists, Stacks, Queues, Linked Lists • GUIs
Sample Interview Questions • What is Polymorphism and why is it useful?
Sample Interview Questions • What is Polymorphism and why is it useful? • Design a Parking Garage
Sample Interview Questions • What is Polymorphism and why is it useful? • Design a Parking Garage • Lots of coding questions involving data structures (Linked Lists, Arrays, Trees, Hashmaps, etc.)
Version Control • Used to keep track of changes within your project.
Version Control • Used to keep track of changes within your project. • Who made what changes, why, when
Version Control • Used to keep track of changes within your project. • Who made what changes, why, when • Can look at history of changes
Version Control • Used to keep track of changes within your project. • Who made what changes, why, when • Can look at history of changes • Can revert to previous version at any time
Version Control • Used to keep track of changes within your project. • Who made what changes, why, when • Can look at history of changes • Can revert to previous version at any time • Git and Mercurial – two version control systems
Version Control • Used to keep track of changes within your project. • Who made what changes, why, when • Can look at history of changes • Can revert to previous version at any time • Git and Mercurial – two version control systems • GitHub (free website for your repositories) • Google Code Repositories
Version Control • Create an account and store all your projects on there. (For all your future courses too)
Version Control • Create an account and store all your projects on there. (For all your future courses too) • Also serves as a portfolio
Version Control • Create an account and store all your projects on there. (For all your future courses too) • Also serves as a portfolio • Look up tutorials online on how to use Git/Mercurial
Programming Languages • Already know Java.
Programming Languages • Already know Java. • Will learn C/C++ for next courses.
Programming Languages • Already know Java. • Will learn C/C++ for next courses. • Try to learn it by yourself too (pointers!)
Programming Languages • Already know Java. • Will learn C/C++ for next courses. • Try to learn it by yourself too (pointers!) • But should also try to learn other languages like: • Python (used at Google/NASA/IBM), Ruby (Amazon), Perl (Amazon), Lua (Game Scripting), C# (for Windows), Javascript (Web Programming), Objective-C (Macs, iOS)
Programming Languages • Can write programs in Python/Ruby very quickly.
Programming Languages Task: • Open a text file named 'list.txt' • Create a list of the lines with more than 5 characters in the text file Python program: mylist = list()myfile = open('list.txt')for line in myfile: if len(line) > 5:mylist.append(line)
Programming Languages Task: • Open a text file named 'list.txt' • Create a list of the lines with more than 5 characters in the text file • Python program: mylist = list()myfile = open('list.txt')for line in myfile: if len(line) > 5:mylist.append(line)
Programming Languages Task: • Open a text file named 'list.txt' • Create a list of the lines with more than 5 characters in the text file • Python program: (“long” version) mylist = list()myfile = open('list.txt')for line in myfile: if len(line) > 5:mylist.append(line)
Programming Languages Task: • Open a text file named 'list.txt' • Create a list of the lines with more than 5 characters in the text file • Even shorter version: mylist = [line for line in open('list.txt') if len(line) > 5]
Linux • Very useful to be proficient at the Linux (or Mac) command line.
Linux • Very useful to be proficient at the Linux (or Mac) command line. • High-learning curve, but very powerful.
Linux • Very useful to be proficient at the Linux (or Mac) command line. • High-learning curve, but very powerful. • Learn unix commands, bash scripting, Makefiles for compiling, etc.
Linux • Very useful to be proficient at the Linux (or Mac) command line. • High-learning curve, but very powerful. • Learn unix commands, bash scripting, Makefiles for compiling, etc. • Used for development everywhere (except for Microsoft)
Linux • Learn a text editor:
Linux • Learn a text editor: • VIM • My personal choice. • High learning curve, but once again very powerful.
Linux • Learn a text editor: • VIM • My personal choice. • High learning curve, but once again very powerful. • Emacs • Also very good and powerful.
Mobile Development • Android and iOS obviously very popular.
Mobile Development • Android and iOS obviously very popular. • You know Java now – try to make some apps.
Mobile Development • Android and iOS obviously very popular. • You know Java now – try to make some apps. • Good way to practice and show people what you made. • Maybe also make some money
Conclusion • Need to put in a lot of effort yourself. • You won’t learn everything in class
Conclusion • Need to put in a lot of effort yourself. • You won’t learn everything in class • Hopefully you enjoyed the course and (importantly) learned a lot.