Presentation is loading. Please wait.

Presentation is loading. Please wait.

1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1.

Similar presentations


Presentation on theme: "1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1."— Presentation transcript:

1 1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1

2 2/ 47 Course wrap-up

3 3/ 47 What you should know  Object-Oriented Programming

4 4/ 47 What you should know  Object-Oriented Programming  Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc.

5 5/ 47 What you should know  Object-Oriented Programming  Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc.  File I/O

6 6/ 47 What you should know  Object-Oriented Programming  Inheritance, Abstract Classes, Interfaces, Polymorphism, How to Design, etc.  File I/O  Searching and Sorting algorithms

7 7/ 47 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

8 8/ 47 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

9 9/ 47 Sample Interview Questions

10 10/ 47 Sample Interview Questions  What is Polymorphism and why is it useful?

11 11/ 47 Sample Interview Questions  What is Polymorphism and why is it useful?  Design a Parking Garage

12 12/ 47 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.)

13 13/ 47 What you won’t learn in your courses

14 14/ 47 1. Version Control

15 15/ 47 Version Control  Used to keep track of changes within your project.

16 16/ 47 Version Control  Used to keep track of changes within your project.  Who made what changes, why, when

17 17/ 47 Version Control  Used to keep track of changes within your project.  Who made what changes, why, when  Can look at history of changes

18 18/ 47 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

19 19/ 47 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

20 20/ 47 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

21 21/ 47 Version Control  Create an account and store all your projects on there. (For all your future courses too)

22 22/ 47 Version Control  Create an account and store all your projects on there. (For all your future courses too)  Also serves as a portfolio

23 23/ 47 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

24 24/ 47 2. Other Programming Languages

25 25/ 47 Programming Languages  Already know Java.

26 26/ 47 Programming Languages  Already know Java.  Will learn C/C++ for next courses.

27 27/ 47 Programming Languages  Already know Java.  Will learn C/C++ for next courses.  Try to learn it by yourself too (pointers!)

28 28/ 47 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)

29 29/ 47 Programming Languages  Can write programs in Python/Ruby very quickly.

30 30/ 47 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)

31 31/ 47 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)

32 32/ 47 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)

33 33/ 47 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]

34 34/ 47 3. Unix/Linux

35 35/ 47 Linux  Very useful to be proficient at the Linux (or Mac) command line.

36 36/ 47 Linux  Very useful to be proficient at the Linux (or Mac) command line.  High-learning curve, but very powerful.

37 37/ 47 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.

38 38/ 47 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)

39 39/ 47 Linux  Learn a text editor:

40 40/ 47 Linux  Learn a text editor:  VIM  My personal choice.  High learning curve, but once again very powerful.

41 41/ 47 Linux  Learn a text editor:  VIM  My personal choice.  High learning curve, but once again very powerful.  Emacs  Also very good and powerful.

42 42/ 47 3. Mobile Development

43 43/ 47 Mobile Development  Android and iOS obviously very popular.

44 44/ 47 Mobile Development  Android and iOS obviously very popular.  You know Java now – try to make some apps.

45 45/ 47 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

46 46/ 47 Conclusion  Need to put in a lot of effort yourself.  You won’t learn everything in class

47 47/ 47 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.


Download ppt "1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1."

Similar presentations


Ads by Google