2. Other Programming Languages

Download Report

Transcript 2. Other Programming Languages

1/ 47
1
COP 3503 FALL 2012
SHAYAN 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,

GUIs
ArrayLists, Stacks, Queues, Linked Lists
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

Can look at history of changes
 Can

made what changes, why, when
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.