CSC 222: Object-Oriented Programming

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
Abstract Data Types (ADT)
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.
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.
Introduction to Object-oriented programming and software development Lecture 1.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Computer Science Victoria University of Wellington Copyright: david streader, Victoria University of Wellington Simple Design COMP
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.
Introduction To System Analysis and Design
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
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 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
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.
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.
Chapter 2 Principles of Programming and Software Engineering.
Computer Science Victoria University of Wellington Copyright: david streader, Victoria University of Wellington Simple Design COMP
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
Principles of Programming & Software Engineering
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 533: Programming Languages Spring 2016
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 533: Programming Languages Spring 2015
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
CSC 321: Data Structures Fall 2016
CSc 020: Programming Concepts and Methodology II
DDC 2423 DATA STRUCTURE Main text:
CSC 321: Data Structures Fall 2017
Types for Programs and Proofs
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
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
CSC 421: Algorithm Design & Analysis
Objects First with Java A Practical Introduction using BlueJ
structures and their relationships." - Linus Torvalds
EECE 310 Software Engineering
Introduction to Computer Science for Majors II
Review CSE116 2/21/2019 B.Ramamurthy.
CSC 581: Mobile App Development
Introduction to Data Structure
CSC 321: Data Structures Fall 2018
CSC 581: Mobile App Development
Chapter 2. Problem Solving and Software Engineering
structures and their relationships." - Linus Torvalds
Presentation transcript:

CSC 222: Object-Oriented Programming Spring 2012 See online syllabus at: dave-reed.com/csc222 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.

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

When problems start to get complex… …choosing the right algorithm and data structures are important e.g., phone book lookup, checkerboard puzzle 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)

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 stressed 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

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 6 (compiler/interpreter) & BlueJ 3.0 (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 www.oracle.com BlueJ from www.bluej.org be sure to download & install Java first, then BlueJ BlueJ is a simple, visual environment; designed for beginners to OO approach

BlueJ screenshot