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.
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.
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?
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:
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
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:
Data Structures and Algorithms in Java AlaaEddin 2012.
Topic 2 Collections. 2-2 Objectives Define the concepts and terminology related to collections Discuss the abstract design of collections.
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 533: Programming Languages Spring 2015
Programming paradigms
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
JAVA COLLECTIONS LIBRARY
CSC 421: Algorithm Design & Analysis
Principles of Programming and Software Engineering
CSC 222: Object-Oriented Programming
Lecture 2 of Computer Science II
September 27 – Course introductions; Adts; Stacks and Queues
CSC 421: Algorithm Design & Analysis
Objects First with Java A Practical Introduction using BlueJ
structures and their relationships." - Linus Torvalds
OOP vs Structured Programming
EECE 310 Software Engineering
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Introduction CSE 373 Data Structures.
Introduction to Computer Science for Majors II
Software Design Lecture : 14.
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 Fall 2017 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, 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)

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 focus on software objects: hides unnecessary details (programmer doesn't have to know the details of the class in order to use it) ensures the integrity of data (programmer can only access public operations) allows for reuse and easy modification (can plug classes into different applications)

Getting started recall: you got a sneak peek at OO at the end of 221 we will start next week with basic Java programming constructs variables, expressions, conditionals, loops, functions, … will map from Python to Java, get lots of hands-on practice (using codingbat.com) then will learn how to package these constructs into classes and objects eventually, will think and design in an object-oriented way we will eventually be using the BlueJ development environment contained on the CD that comes with the book can also be downloaded for free from the Web BlueJ (4.1) from www.bluej.org BlueJ is a simple, visual environment; designed for beginners to OO approach