Introduction to PAD2 Dr. Mark C. Lewis 1-14-2009.

Slides:



Advertisements
Similar presentations
CS112: Course Overview George Mason University. Today’s topics Go over the syllabus Go over resources – Marmoset – Blackboard – Piazza – Textbook Highlight.
Advertisements

James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Event driven software.
James Tam Introduction To CPSC 231 James Tam Administrative (James Tam) Contact Information -Office: ICT 707 -
Intro to CIT 594
James Tam Introduction To CPSC 219 James Tam Administrative (James Tam) Contact Information -Office: ICT 707 -
Welcome to IIT and cs105!. CS Secs Jon Hanrath SB Office Hours: –MW 8:00 A.M. – 9:45 A.M. –W 5:00 P.M. – 6:00 P.M
Using MyMathLab Features You must already be registered or enrolled in a current MyMathLab class in order to use MyMathLab. If you are not registered or.
1 Learning Statistics Your goals and beliefs about learning statistics are directly related to your grade in STT 215.
ITP © Ron Poet Lecture 1 1 IT Programming Introduction.
1 COMPUTER SCIENCE 1026A COMPUTER SCIENCE FUNDAMENTALS Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to Computing.
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.
What you need to know about this class A powerpoint syllabus.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
COMP Introduction to Programming Yi Hong May 13, 2015.
Business Discipline Breakout Session Summer 2000 ION Conference Facilitated By: Marcy Satterwhite.
Welcome to IIT and cs115!.
Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Intro to CSCI1320 Fall Dr. Mark C. Lewis.
University of Limerick1 Computer Applications CS 4815 Robocode.
CIS 842: Specification and Verification of Reactive Systems Lecture ADM: Course Administration Copyright , Matt Dwyer, John Hatcliff, Robby. The.
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Graphical-user interfaces.
Welcome!!!. Let’s start with introductions Introduce yourself, stating your name, and your some of your favorite books or movies. My name is Alyssa and.
Introduction to Computer Architecture Dr. Mark C. Lewis
1 Computer Science 1021 Programming in Java Geoff Draper University of Utah.
Welcome to Mr. Cripps’ Social Sciences Informational Site.
JavaScript Part 1 Introduction to scripting The ‘alert’ function.
Introduction to CSCI 1311 Dr. Mark C. Lewis
CSc 120 Introduction to Computer Programing II
Course Information and Introductions
CSC207 Fall 2016.
Course Information and Introductions
Lab Introduction Installing Python
Human Computer Interaction
University of Washington Computer Programming I
Computer Science 102 Data Structures CSCI-UA
Using MyMathLab Features
We’ll be spending minutes talking about Quiz 1 that you’ll be taking at the next class session before you take the Gateway Quiz today.
Welcome to CS 1010! Algorithmic Problem Solving.
Welcome to CS 1010! Algorithmic Problem Solving.
11/22/2018 Math is awesome!.
EECE 310 Software Engineering
CSCD 330 Network Programming Spring
Introduction to the course Day 1
Introduction to CS II Data Structures
Introduction to Programming Using C++
CSCD 330 Network Programming Spring
Using MyMathLab Features
Intro to CIT 594
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
WELCOME TO TOWSON UNIVERSITY
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
Accelerated Introduction to Computer Science
WELCOME TO NCA! TEACHERS ORIENTATION.
Tonga Institute of Higher Education IT 141: Information Systems
Tips for Success in Mathematics
Welcome to Physics 1D03 !.
CSCD 330 Network Programming Spring
Inside a PMI Online Course
OLAC Course Development Review in Canvas
CS 2530 Intermediate Computing Dr. Schafer
Using CourseCompass Features
Intro to CIT 594
Introduction To CPSC 233 James Tam Event driven software
Welcome to the First-Year Experience!
Tonga Institute of Higher Education IT 141: Information Systems
CS Problem Solving and Object Oriented Programming Spring 2019
Introduction To CPSC 233 James Tam Event driven software
Welcome to the First-Year Experience!
GSP 470/570 Advanced Geospatial Analysis and Modeling
Presentation transcript:

Introduction to PAD2 Dr. Mark C. Lewis 1-14-2009

Opening Discussion At the beginning of every class we will do a brief discussion of some questions I provide and any questions you might have. Typically mine cover the previous lecture. What do you know about Java and Object- Orientated programming/design? Never reboot or turn off these machines!

Basic Information Log onto the machines and bring up a browser. Course web page: http://www.cs.trinity.edu/~mlewis/CSCI1321-S10/ Office: HAS 201K Phone: 999-7022 e-mail: mlewis@trinity.edu Office hours: 2:00-4:30 MW, 1:00-3:00 T, and 1:00- 4:30 R, or by appointment Afternoon times are open labs I hope.

Text and References “Object-Oriented Programming with Java” by Mark Lewis. We tried using other books, but found that they don't fit the way we run this class. So instead I'm expanding my supplemental material from past years into a full textbook. There are lots of books that you could buy on Java, but for most basic information the web is actually a great source, and it is free. If you are going to do much programming without net connection you can download the API in HTML or buy the Nutshell books.

Course Description This course is the second CS course for majors here at Trinity. It will continue to build your abilities to solve problems on the computer, but it will switch focus to object-oriented design and programming. We will learn how to use a number of simple data structures in an OO framework. We will also look at some libraries specific to Java.

Assignments/Project The most significant work you do for this course will be for the assignments. All the assignments will be based on a single program. With each assignment you will construct a bit more of the code to create your final result. You will also be using code that I have written as well as the general Java libraries. There are certain coding standards that you need to follow. You will also turn in a design for each assignment. More about the project in a few slides.

Grades Your grade in this class is determined by a combination of 5 parts.

Extra Credit You can also receive extra credit in this course in a number of ways. Quizzes and tests will almost all contain extra credit questions. These will typically be more challenging than the normal questions. You can send me links to information you find that demonstrates that you have been thinking about course material outside of class. Do some competitions at TopCoder.com. They have regular competitions where you attempt to solve a number of problems as fast as you can. They allow you to code in Java, C++, and C#.

Lectures/Schedule The web page also has a schedule for the entire semester. It includes not only the topics, but also readings and due dates for everything that receives a grade. On this page I will provide links to the slides I use in PDF format. I post them at least the night before class. I do this because you should never feel like you have to write down what is on the slides. Focus on listening so you can “grok” the material and take notes on interesting points not in the slide text.

Think More - Work Less For those of you who don’t know this yet, my overriding objective in this class is to get you to think. During the course of the semester, several lights should come on in your head as different ideas start to make sense. Object-orientation is not just a minor modification of the imperative style you learned last semester. The more you think through assignments the less time you will spend coding.

More on the Project The project that you will be doing for the semester is a game. Exactly what type of game it is will be up to you. There are certain restrictions on what you can produce though. Your game will consist of one of more different “screens” and possibly a player that navigates through them. Each screen is a grid of “blocks” and can have a number of “entities” on it the player can interact with or that interact with one another. People have made lots of different types of games. The only real limitation is that it needs to be 2-D.

Project Ideas There are many, many different games that could be written using this basic model and I want you to use your imagination in coming up with an idea. Two broad categories that fit this model are games similar to the “side scroller” or top-down view games like older RGPs. Even Pac-Man can be written using this model. Civ is a stretch, but not impossible. Tetris and break-out also. Board games can also be done, but the framework is less intended for that style of game.

BlueJ Right at the beginning of the semester we will do our work in class using the BlueJ IDE. This is an educational programming environment. It has been developed to help students learn the basics of Java and object orientation. We will only be using it for about the first three weeks of class. This is something new that I am trying this semester.

Eclipse IDE Most of the semester we will use the Integrated Development Environment called Eclipse. This is open source and is one of the most widely use professional Java IDEs. You can go to eclipse.org and download a version of Eclipse for your room if you want. It is installed on all of our machines here in Halsell. You can also work with Java on the command line and occasionally in class we will look at how you might do that.

Object Orientation There are lots of ideas that go into the concept of object orientation and many people would disagree with what parts are most important. The one aspect that is generally agreed upon is that an OO language needs to have encapsulation. This is the binding of data and the code that works on it together into entities called objects. The idea of OO comes from the real world where we interact with objects. In Java we call the information in an object the members and the things we can do with them the methods. Much of the power of encapsulation comes from the ability to hide things.

Abstraction One of the main objectives of this class is to help you understand the role of abstraction in programming. In PAD1 you wrote functions that worked on particular types and completed particular tasks. If you changed the type or the task you had to alter the code or make a new, slightly different version of it. Abstraction allows you to write code that is more flexible. It is also one of the core ideas of computer science.

Class Based OO Java is a class based object oriented language. What we write in code is classes. Objects are created based on the classes. An analogy that I like is that the class is a blueprint and the objects are the actual objects that we build from the blue print. The class specifies what information the objects store and what the objects are able to do. The things we put in the classes can be given a visibility so that we can hide things that other people don't need to know about.

Example Coding For fun, we will now write some code in Java using Eclipse. The next two days we will look more at object orientation and Java and the things I write now will make more sense.

Minute Essay At the end of every class I will have you write me a “minute essay”. This is a few sentences that shouldn’t take you much more than a minute. I will typically ask some type of question for you to answer. You can also provide any form of feedback on anything from the class you want to. Make sure your names are always on these as I use them for attendance and feedback. What are your thoughts on the class description? What do you want to get from this course?