Being Professional / دس ن ه م ش ا ن ل ا مدي ح ود م ح م ه ل ل دا ن ع– ه ع ف د ب س حا ل وم ا ل ع% ج ي ر خ2009 : % ج ير خ ل ما ق ر10074142
Being Professional
محمود الباشمهندس/ الله عبدحمدي
دفعة – الحاسب علوم 2009خريج : الخريج 10074142رقم
• Electronics• Introduction to
Computing• Computer
Programming• Statistics Methods• Math-1• Math-2• Logic Design• Electrical
Communications• Operations Research• Data Structures and
Algorithms• Information Systems• Technical English• Business
Administration
• Probabilities and Statistical Distributions.
• Math-3• Operating Systems-1• File Organization and
Processing• Computer Architecture• Computer Graphics• Networking• Software Engineering-
1• Software Engineering-
2• Artificial Intelligence• Database Systems
• Compilers Construction
• Multimedia• Advanced Multimedia.• Operating Systems-2• Natural Language
Processing• Computer Arabization• Distributed
Systems.• Image Processing.• Assembly• Neural Networks• Knowledge-Based
Systems
• Electronics• Introduction to
Computing• Computer
Programming• Statistics Methods• Math-1• Math-2• Logic Design• Electrical
Communications• Operations Research• Data Structures and
Algorithms• Information Systems• Technical English• Business
Administration
• Probabilities and Statistical Distributions.
• Math-3• Operating Systems-1• File Organization and
Processing• Computer Architecture• Computer Graphics• Networking• Software Engineering-
1• Software Engineering-
2• Artificial Intelligence• Database Systems
• Compilers Construction
• Multimedia• Advanced Multimedia.• Operating Systems-2• Natural Language
Processing• Computer Arabization• Distributed
Systems.• Image Processing.• Assembly• Neural Networks• Knowledge-Based
Systems
Java EE
• Electronics• Introduction to
Computing• Computer
Programming• Statistics Methods• Math-1• Math-2• Logic Design• Electrical
Communications• Operations Research• Data Structures and
Algorithms• Information Systems• Technical English• Business
Administration
• Probabilities and Statistical Distributions.
• Math-3• Operating Systems-1• File Organization and
Processing• Computer Architecture• Computer Graphics• Networking• Software Engineering-
1• Software Engineering-
2• Artificial Intelligence• Database Systems
• Compilers Construction
• Multimedia• Advanced Multimedia.• Operating Systems-2• Natural Language
Processing• Computer Arabization• Distributed
Systems.• Image Processing.• Assembly• Neural Networks• Knowledge-Based
Systems
Java EE
Being Professional
Professional?
• Highly educated.• Mostly salaried.• Enjoy considerable
work autonomy• Engaged in creative
and intellectually challenging work.
Are you Professional? So…
• Define every term you know.• Read books.• Refer to references.• Think before Working.• Think before Complaining.• Do Not be Pedantic!
Define Every Term
• Why?o Express yourself.o Talk with other professionals.o Pass interviews.o Be able to read books.
Define Every Term
• Try Define…
Define Every Term
• Try Define…o Computer.
Define Every Term
• Try Define…o Computer.o Performance.
Define Every Term
• Try Define…o Computer.o Performance.o Resource.
Define Every Term
• Try Define…o Computer.o Performance.o Resource.o Process.
Define Every Term
• Try Define…o Computer.o Performance.o Resource.o Process.o Application.
Define Every Term
• Try Define…o Computer.o Performance.o Resource.o Process.o Application.o Object-Oriented.
Read Books
• How to Read a Book? (1940 by Mortimer Adler)
o 3 distinct approaches, or readings, must all be made in order to get the most possible out of a book. (1) Structural Reading. (2) Interpretative Reading. (3) Critical Reading.
Results to My Results
Structural Reading
• Understanding the structure and purpose of the book.
• Begin with determining the basic topic and type of the book being read, so:o as to better anticipate the contentso comprehend the book from the very beginning.
If you will not read the book in your hands, at least read the index.
Interpretative Reading
• Constructing the author's arguments.• This first requires the reader to note and
understand any special phrases and terms that the author uses.
• More terms you can define, more understanding to books is gained.
Critical Reading
• Criticize the arguments.• Now you understand the content? Still not
unless you can judge the arguments.• Think about the arguments, are they
logical to you? Is there any disamiguities?
Refer to References
• In the exhibited code, does else refer to the red if or blue if..??
if (x == y) if (y == z)out.println(“y == z”) ;elseout.println(“????”) ;
Java Language Specification
• if rule:
Java Language Specification
• if rule:
Java Language Specification
• if rule:
Java Language Specification
• if rule:
BNF
Think before Working
• Program 1 shared variable A with program 2 by saving A’s address in a file. Program 2 reads the address of the variable A from the file, then access it. Why it reads invalid data?
1 2
Afile
Virtual Address Space
• Virtual address space (abbreviated VAS) is a memory mapping mechanism available in modern operating systems such as OpenVMS, UNIX, Linux, and Windows NT.
• This is beneficial for different purposes, one is protection through process isolation.
Virtual Address Space
Virtual Memory
Program 1 Program 2
Think before Complaining
• Is not 0.12 = exactly 0.01??!Java is Buggy!
double x = 0.1;out.println(x*x) ;//prints 0.010000000000000002 (!!!)
Floating-Point Representation
• IEEE754.• Float: 32-bits (single-precision)• Double: 64-bits (double-precision)• Can you:
o convert 0.1 into binary? (work it out)
Floating-Point Representation
• IEEE754.• Float: 32-bits (single-precision)• Double: 64-bits (double-precision)• Can you:
o convert 0.1 into binary? (work it out)
• Fact… There’s no exact representation for 0.1 in computer floats!
Do Not be Pedantic!
• A program to sort an array.
for(int i = 0 ; i < arr.length-1; i++) {for(int j = i + 1; j < arr.length; j++) {if(arr[j] < arr[i]) {
int tmp = arr[i] ; arr[i] = arr[j] ; arr[j] = tmp ;
} }
}
Do Not be Pedantic!
• Ooh!... I’m professional…!!
for(int i = 0 ; i < arr.length-1; i++)for(int j = i + 1; j < arr.length; j++)if(arr[j] < arr[i])for(int tmp=arr[i], h=0;h < 1;arr[j]=tmp, h++)arr[i] = arr[j];
Compiler Phases
Compiler Optimization
• Compiler optimization is the process of tuning the output of a compiler to minimize or maximize some attribute of an executable computer program.
• The most common requirement is to minimize the time taken to execute a program; a less common one is to minimize the amount of memory occupied.
• The growth of portable computers has created a market for minimizing the power consumed by a program.
The Message“FCI makes me Professional in my work… What if I studied harder?”• An FCI graduate.