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

Upload: bruno-martin-morton

Post on 27-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

1/ 47

1

COP 3503 FALL 2012SHAYAN JAVED

LECTURE 19

Programming Fundamentals using Java

2/ 47

Course wrap-up

3/ 47

What you should know

Object-Oriented Programming

4/ 47

What you should know

Object-Oriented Programming Inheritance, Abstract Classes, Interfaces,

Polymorphism, How to Design, etc.

5/ 47

What you should know

Object-Oriented Programming Inheritance, Abstract Classes, Interfaces,

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

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

Sample Interview Questions

10/ 47

Sample Interview Questions

What is Polymorphism and why is it useful?

11/ 47

Sample Interview Questions

What is Polymorphism and why is it useful?

Design a Parking Garage

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

What you won’t learn in your courses

14/ 47

1. Version Control

15/ 47

Version Control

Used to keep track of changes within your project.

16/ 47

Version Control

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

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

Version Control

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

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

2. Other Programming Languages

25/ 47

Programming Languages

Already know Java.

26/ 47

Programming Languages

Already know Java.

Will learn C/C++ for next courses.

27/ 47

Programming Languages

Already know Java.

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

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

Programming Languages

Can write programs in Python/Ruby very quickly.

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

3. Unix/Linux

35/ 47

Linux

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

36/ 47

Linux

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

High-learning curve, but very powerful.

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

Linux

Learn a text editor:

40/ 47

Linux

Learn a text editor:

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

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

3. Mobile Development

43/ 47

Mobile Development

Android and iOS obviously very popular.

44/ 47

Mobile Development

Android and iOS obviously very popular.

You know Java now – try to make some apps.

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

Conclusion

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

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.