Peyman Dodangeh Sharif University of Technology Spring 2014 Agenda Introduction to Course Administrative Details Syllabus References Evaluation Policy Spring 2014 Sharif University of Technology 2 Expected Background “A one-semester college course in programming.” I assume you can write a program in some language, understand variables, control structures, functions/subroutines. If in doubt, let’s talk. Evaluation Policy Spring 2014 How many? Total Grade Quiz 8 4 Midterm Exam 1 3 Final Exam 1 5 Assignment 4 4 Project 2 4+ Sharif University of Technology 4 Administrative Details (cont.) Our teaching assistant is Administrative Details (cont.) 17 weeks Two 80-minute lectures per week, a break in between the lectures. Course notes in PowerPoint. Course notes available (usually) Friday before class. Send course questions to Blackboard’s Discussion Group, personal questions to me. Administrative Details (cont.) Everything is attached to the syllabus. Don’t look for assignments, etc. on Blackboard. Look at the syllabus! Homework usually weekly. Printing slides? Three to a page, at least. Save a tree! Remove the PowerPoint background before printing. Save toner! Administrative Details (cont.) Attendance is not required, but… …you are responsible for everything said in class. I encourage you to ask questions in class. Don’t guess, ask a question! My Policy on Cheating Cheating means “submitting, without proper attribution, any computer code that is directly traceable to the computer code written by another person.” I give students a failing course grade for any cheating. This doesn’t help your job prospects. My Policy on Cheating You may discuss homework problems with classmates, after you have made a serious effort in trying the homework on your own. You can use ideas from the literature (with proper citation). You can use anything from the textbook/notes. The code you submit must be written completely by you. Course Etiquette Etiquette is “conduct in polite society” No cell phones No random comings and goings If you are sleepy, go home If you want to read email or surf the Web, please do it elsewhere This Course Covers: Object Oriented Concepts Fundamentals of Java programming language Some Programming Skills Software Quality Test Refactoring Spring 2014 Sharif University of Technology 12 Object Oriented Programming Problem Space the place where the problem exists such as a business Solution Space the place where you’re implementing that solution such as a computer The effort required to perform this mapping. E.g. think about a library, or a phonebook program Name solution space entities. Spring 2014 Sharif University of Technology 13 Object Oriented Approach OOP lets the programmer represent problem space elements The elements in the problem space and their representations in the solution space are referred to as “objects” Spring 2014 Sharif University of Technology 14 OOP The program is allowed to adapt itself to the lingo of the problem by adding new types of objects when you read the code, you’re reading words that also express the problem. Spring 2014 Sharif University of Technology 15 OOP (2) OOP allows you to describe the problem in terms of the problem Rather than in terms of the computer Objects in your code are similar to real objects Recall the sample programs: phonebook and library Spring 2014 Sharif University of Technology 16 Object Oriented Languages Smalltalk The first successful object-oriented language One of the languages upon which Java is based Java C++ C# Spring 2014 Sharif University of Technology 17 Java History Java was created in 1991 by James Gosling in Sun Microsystems Initially called Oak in honor of the tree outside Gosling's window Its name was changed to Java because there was already a language called Oak. Sun Microsystems released the first public implementation as Java 1.0 in 1995 Java syntax is similar to C and C++. Spring 2014 Sharif University of Technology 18 Java Motivation The need for platform independent language To be embedded in various consumer electronic products like toasters and refrigerators Platform independent?! Hardware Operating System Spring 2014 Sharif University of Technology 19 Java Motivation (2) At the same time, the World Wide Web and the Internet were gaining popularity. Java could be used for internet programming. Why? Platform independence Creation of Applets Spring 2014 Sharif University of Technology 20 The Java technology is: A programming language Java can create all kinds of applications A development environment A compiler (javac) An interpreter (java) A documentation generator (javadoc) … Compare it to C++ Spring 2014 Sharif University of Technology 21 High-Level Languages Spring 2014 Sharif University of Technology 22 Java Virtual Machine Spring 2014 Sharif University of Technology 23 Compile and Execution Stages Compare to C++ and Assembly .NET Framework Spring 2014 Sharif University of Technology 24 Java is Popular Some reports on programming languages popularity According to Job advertisements Book sales Finding code on the web … Spring 2014 Sharif University of Technology 25 http://www.langpop.com updated in 2010 Spring 2014 Sharif University of Technology 26 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html (2012) Spring 2014 Sharif University of Technology 27 Characteristics of Java Java is simple Java is object-oriented Java is architecture-neutral Java is portable Java is interpreted Java is multithreaded Java is secure Java is robust Spring 2014 Sharif University of Technology 28 First Example Create a file named First.java Java class files have .java extension Note to naming convention Copy this lines to the file Note: File name and class name should be the same. Fall 2011 Sharif University of Technology 29 Oracle, Sun, … Spring 2014 Sharif University of Technology 30 Further Reading Read Java page on Wikipedia http://en.wikipedia.org/wiki/Java_(programming_language) Google this terms and phrases: Java Java and C++ Java Mobile Java and C# JVM Byte code Java Sun Spring 2014 Sharif University of Technology 31 Assignment # 0 Download and install JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html JDK 7 Write a program that prints your name on the console Compile and run the program Spring 2014 Sharif University of Technology 32 Course Outline Let’s See The Syllabi. Topics Introduction to java language Java syntax, operators, conditions, loops, … Strings Arrays Object Oriented Programming Interface Inheritance Polymorphism Advanced Java Programming Exception Handling Generics Collections GUI Threads Files and Streams Networking Reflection Software Quality Refactoring Test Spring 2014 Sharif University of Technology 34 References Java How to Program Deitel & Deitel 9th Edition (6th+ editions are ok) Thinking in Java Bruce Eckel Fourth Edition Spring 2014 Sharif University of Technology 35 Course Homepage https://ce.sharif.edu/courses Lecture notes and reference books are uploaded here Spring 2014 Sharif University of Technology 36 Spring 2014 Sharif University of Technology 37