1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.

Slides:



Advertisements
Similar presentations
1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
Advertisements

Introduction To System Analysis and Design
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
Lecture Notes 1/21/04 Program Design & Intro to Algorithms.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Objects & Object-Oriented Programming (OOP) CSC 1401: Introduction to Programming with Java Week 15 – Lecture 1 Wanda M. Kunkle.
CSC 111 Course orientation
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Concept of Computer Programming November 2, 2011.
Your Interactive Guide to the Digital World Discovering Computers 2012.
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.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
1 CSC 221: Computer Programming I Fall 2004 Objects and classes: a first pass  software objects, classes, object-oriented design  BlueJ IDE, compilation.
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?
Fall AboutMichael Fung, CS&E, The Chinese University of HK1 CSC1030 Hands-on Introduction to JAVA Dept of Computer Science and Engineering The.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Instructional Plan Template | Slide 1 AET/515 Instructional Plan Advanced Enterprise Java Platform Class and Lab Mark K. Reha.
CE0825 Object-Oriented Programming 2 © Allan C. Milne Abertay University v
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
1 CSC 221: Introduction to Programming Fall 2013 See online syllabus (also accessible via BlueLine2): Course goals:  To develop.
1 CSC 221: Computer Programming I Spring 2008 repetition & simulations  conditional repetition, while loops  examples: dot race, paper folding puzzle,
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction To System Analysis and Design
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
1 CSC 221: Computer Programming I Fall 2006 repetition & simulations  conditional repetition, while loops  examples: dot race, paper folding puzzle,
Computer Concepts 2014 Chapter 12 Computer Programming.
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:
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 Spring 2010 Understanding class definitions  class structure  fields, constructors, methods  parameters  assignment.
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
1 CSC 221: Computer Programming I Spring 2008 Objects and classes: a broad view  software objects, classes, object-oriented design  BlueJ IDE, compilation.
1 CSC 221: Computer Programming I Spring 2010 repetition & simulations  conditional repetition, while loops  examples: paper folding, sequence generation,
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 CSC 221: Computer Programming I Fall 2009 interaction & repetition  modular design: dot races  constants, static fields  conditional repetition, while.
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?
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
1 CSC 221: Computer Programming I Fall 2009 See online syllabus (also accessible via BlueLine): Course goals:  To develop.
Objective You will be able to define the basic concepts of object-oriented programming with emphasis on objects and classes by taking notes, seeing examples,
CSC 205 Java Programming II Introduction. Topics Syllabus Course goals and approach Review I Java language fundamentals.
1 CSE Programming in C++. 2 Overview Sign roster list Syllabus and Course Policies Introduction to C++ About Lab 1 Fill Questionnaire.
Problem-solving with Computers. 2Outline  Computer System  5 Steps for producing a computer program  Structured program and programming  3 types of.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
1.1: Objects and Classes msklug.weebly.com. Agenda: Attendance Let’s get started What is Java? Work Time.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
ICS 3UI - Introduction to Computer Science
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2017
CSC 221: Computer Programming I Spring 2010
CSC 221: Computer Programming I Fall 2005
CSC 421: Algorithm Design & Analysis
Systems Analysis and Design in a Changing World, Fifth Edition
CSC 222: Object-Oriented Programming
CSC 421: Algorithm Design & Analysis
Fundamentals of Programming
CSC 221: Computer Programming I Spring 2008
CSC 221: Introduction to Programming Fall 2018
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop problem solving and programming skills to enable the student to design solutions to non-trivial problems and implement those solutions in Java.  To master the fundamental programming constructs of Java, including variables, expressions, classes, methods, control structures, and arrays.  To build a foundation for more advanced programming techniques, including object- oriented design and the use of standard data structures (as taught in CSC 222).

2 What is programming? in short: programming is the process of designing, writing, testing and debugging algorithms that can be carried out by a computer we encounter algorithms everyday: directions to dorm, instruction manual, recipe  people are smart, so spoken languages can be vague  computers are not smart, so programming languages are extremely picky programming is applied problem-solving 1.understand a problem 2.identify relevant characteristics 3.design an algorithm (step-by-step sequence of instructions to carry out a task) 4.implement the algorithm as a computer program 5.test the program by repeated (and carefully planned) executions 6.GO BACK AND REPEAT AS NECESSARY

3 Problem-solving example Sudoku is a popular puzzle craze given a partially filled in 9x9 grid, place numbers in the grid so that each row contains 1..9 each column contains 1..9 each 3x3 subsquare contains 1..9 if we wanted to write a program to solve Sudoku puzzles, must/should it use the same strategies? how do people solve these puzzles?

4 Object-oriented programming the dominant approach to software development is object-oriented design  solve problems by modeling real-world objects e.g., if designing a Sudoku solver, model board (rows/cols/subsquares), numbers e.g., if designing a banking system, model clients, accounts, deposits, …  a program is a collection of interacting objects  emphasizes code reuse (important in industry not to keep reinventing the wheel) when designing a program, first focus on the data objects involved, understand and model their interactions QUESTION: what is a die? this course will emphasize object-oriented programming techniques  utilize the Java programming language (1995, Sun Microsystems)  we will also use the BlueJ IDE, designed for teaching/visualizing OOP  good news: both are free

5 Programming is a means to an end important point: programming is a tool for solving problems  computers allow people in many disciplines to solve problems they couldn’t solve without them — natural sciences, mathematics, medicine, business, …  to model this, many exercises will involve writing a program, then using it to collect data & analyze results PAPER FOLDING PUZZLE: if you started with a regular sheet of paper and repeatedly fold it in half, how many folds would it take for the thickness of the paper to reach the sun?  what information do you need (e.g., distance of sun)?  what data values do you need to store and update?  what is the basic algorithm?

6 Java solution public class PaperSheet { private double thickness; // thickness in inches private int numFolds; // the number of folds so far /** * Constructs the PaperSheet object initial the initial thickness (in inches) of the paper */ public PaperSheet(double initial) { this.thickness = initial; this.numFolds = 0; } /** * Folds the sheet, doubling its thickness as a result */ public void fold() { this.thickness *= 2; this.numFolds++; } /** * Repeatedly folds the sheet until the desired thickness is reached goalDistance the desired thickness (in inches) */ public void foldUntil(double goalDistance) { while (this.thickness < goalDistance) { this.fold(); } /** * Accessor method for determining folds the number of times the paper has been folded */ public int getNumFolds() { return this.numFolds; } note: only the black text is necessary code (comments, which document the code, are shown here in blue)

7 Next week… review basic computer terminology and history  hardware vs. software  generations of computer technology  evolution of programming explore object-oriented concepts using Alice  a fun, interactive environment for creating animations finally, segue into Java programming  we will go over the details, so NO PREVIOUS EXPERIENCE NECESSARY  classes will mix lecture and hands-on experimentation, so be prepared to DO THINGS