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

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

Dec 27, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1.

1/ 47

1

COP 3503 FALL 2012SHAYAN JAVED

LECTURE 19

Programming Fundamentals using Java

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

2/ 47

Course wrap-up

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

3/ 47

What you should know

Object-Oriented Programming

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

4/ 47

What you should know

Object-Oriented Programming Inheritance, Abstract Classes, Interfaces,

Polymorphism, How to Design, etc.

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

5/ 47

What you should know

Object-Oriented Programming Inheritance, Abstract Classes, Interfaces,

Polymorphism, How to Design, etc. File I/O

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

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

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

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

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

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

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

9/ 47

Sample Interview Questions

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

10/ 47

Sample Interview Questions

What is Polymorphism and why is it useful?

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

11/ 47

Sample Interview Questions

What is Polymorphism and why is it useful?

Design a Parking Garage

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

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.)

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

13/ 47

What you won’t learn in your courses

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

14/ 47

1. Version Control

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

15/ 47

Version Control

Used to keep track of changes within your project.

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

16/ 47

Version Control

Used to keep track of changes within your project. Who made what changes, why, when

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

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

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

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

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

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

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

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

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

21/ 47

Version Control

Create an account and store all your projects on there. (For all your future courses too)

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

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

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

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

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

24/ 47

2. Other Programming Languages

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

25/ 47

Programming Languages

Already know Java.

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

26/ 47

Programming Languages

Already know Java.

Will learn C/C++ for next courses.

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

27/ 47

Programming Languages

Already know Java.

Will learn C/C++ for next courses. Try to learn it by yourself too (pointers!)

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

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)

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

29/ 47

Programming Languages

Can write programs in Python/Ruby very quickly.

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

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)

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

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)

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

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)

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

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]

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

34/ 47

3. Unix/Linux

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

35/ 47

Linux

Very useful to be proficient at the Linux (or Mac) command line.

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

36/ 47

Linux

Very useful to be proficient at the Linux (or Mac) command line.

High-learning curve, but very powerful.

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

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.

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

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)

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

39/ 47

Linux

Learn a text editor:

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

40/ 47

Linux

Learn a text editor:

VIM My personal choice. High learning curve, but once again very powerful.

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

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.

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

42/ 47

3. Mobile Development

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

43/ 47

Mobile Development

Android and iOS obviously very popular.

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

44/ 47

Mobile Development

Android and iOS obviously very popular.

You know Java now – try to make some apps.

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

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

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

46/ 47

Conclusion

Need to put in a lot of effort yourself. You won’t learn everything in class

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

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.