1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.

Slides:



Advertisements
Similar presentations
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Advertisements

Introduction to Object Oriented Programming Java.
1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.
Software Engineering and Design Principles Chapter 1.
Introduction To System Analysis and Design
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Computer Science 240 Principles of Software Design.
Data Structures and Programming.  John Edgar2.
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Introduction To System Analysis and design
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
1 CSC 221: Computer Programming I Fall 2004 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here?
N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Integrating Testing into the CS1 Syllabus.
Introduction to Object-oriented programming and software development Lecture 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
EECE 310 Software Engineering Lecture 0: Course Orientation.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction To System Analysis and Design
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
1 COS 260 DAY 1 Tony Gauvin. 2 Agenda Class roll call Instructor Introduction Instructor’s Educational Philosophy Contract on Classroom Behavior Syllabus.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Introduction to Data Structures
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
CSC 221: Computer Programming I Fall 2001 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here? 
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Data Structures and Algorithms in Java AlaaEddin 2012.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Topic 2 Collections. 2-2 Objectives Define the concepts and terminology related to collections Discuss the abstract design of collections.
Introduction to Objects and Encapsulation Computer Science 4 Mr. Gerb Reference: Objective: Understand Encapsulation and abstract data types.
Chapter 2 Principles of Programming and Software Engineering.
CSC 243 – Java Programming, Spring, 2014 Week 4, Interfaces, Derived Classes, and Abstract Classes.
Computer Science Victoria University of Wellington Copyright: david streader, Victoria University of Wellington Simple Design COMP
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
CSC 321: Data Structures Fall 2016
CSc 020: Programming Concepts and Methodology II
CSC 321: Data Structures Fall 2017
CHAPTER 5 GENERAL OOP CONCEPTS.
CSC 221: Computer Programming I Spring 2010
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
CSC 421: Algorithm Design & Analysis
CSC 222: Object-Oriented Programming
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
CSC 421: Algorithm Design & Analysis
EECE 310 Software Engineering
Introduction to Computer Science for Majors II
CSC 321: Data Structures Fall 2018
Chapter 2. Problem Solving and Software Engineering
Presentation transcript:

1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving (e.g., classes, polymorphism, inheritance, interfaces).  To appreciate the role of algorithms and data structures in problem solving and software design (e.g., objected-oriented design, lists, files, searching and sorting).  To be able to design and implement a Java program to model a real- world system, and subsequently analyze its behavior.  To develop programming skills that can serve as a foundation for further study in computer science. See online syllabus at: dave-reed.com/csc222dave-reed.com/csc222

2 Assumed background technically, CSC 221 is a prerequisite for this course  what is really needed is basic programming & problem-solving experience variables: data types, assignments, expressions control structures: if, if-else, while, for functions: parameters, return, libraries data structures: strings, lists, files  early on, I will map Java constructs back to their corresponding Python  if you learned a different language, will need to make your own connection as an intro, 221 focused on programming-in-the-small  simple problems; could be solved in 1-3 functions; few design choices this class extends to programming-in-the-medium  and lays the groundwork for programming-in-the-large by emphasizing the object-oriented approach to software design

3 When problems start to get complex… …choosing the right algorithm and data structures are important  e.g., phone book lookup, checkerboard puzzle, word ladders  must develop problem-solving approaches (e.g., iteration, recursion)  be able to identify appropriate data structures (e.g., array, ArrayList, stack, queue) …code reuse is important  designing, implementing, and testing large software projects is HARD whenever possible, want to utilize existing, debugged code  reusable code is: clear and readable (well documented, uses meaningful names, no tricks) modular (general, independent routines – test & debug once, then reuse)

4 Object-oriented programming OOP is the standard approach to software engineering philosophy: modularity and reuse apply to data as well as functions  when solving a problem, must identify the objects involved e.g., banking system: customer, checking account, savings account, …  develop a software model of the objects in the form of abstract data types (ADTs) an ADT is a collection of data items and the associated operations on that data in Java, ADTs are known as classes OOP stresses ADTs in order to  hide unnecessary details (programmer doesn't have to know the details of the class in order to use it)  ensure the integrity of data (programmer can only access public operations)  allow for reuse and easy modification (can plug classes into different applications)  inheritance and interfaces can further facilitate the development of reusable code

5 Getting started recall: you got a sneak peek at OO at the end of 221  Die, DeckOfCards, RowOfCards we will start next week with the philosophy of OO  concepts of class & object  how designing classes and instantiating objects leads to modular, reusable code we will be using Java (compiler/interpreter) & BlueJ (IDE)  both are on the CD that comes with the book  can also be downloaded for free from the Web Java (JDK6 or newer JDK7) from BlueJ (3.0 or newer) from be sure to download & install Java first, then BlueJ  BlueJ is a simple, visual environment; designed for beginners to OO approach

BlueJ screenshot 6