30
CSE 219 Computer Science III Introduction

CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: [email protected]@cs.sunysb.edu Work phone: 631-632-1628 Office

Embed Size (px)

Citation preview

Page 1: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

CSE 219Computer Science III

Introduction

Page 2: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Who am I?Ahmad Esmaili

E-mail: [email protected]

Work phone: 631-632-1628

Office Location: CS Room 1438A

Office hours: Mondays 9:15-10:30am & Fridays12:45 –2:00pm or by appointment

Page 3: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course Homepages

• http://www.cs.sunysb.edu/~cse219– announcements– course information– schedule and grades

• http://www.cs.sunysb.edu/~cse219/source/??.zip– Source codes covered in class

• http://blackboard.stonybrook.edu– discussion board– schedule (lecture slides, hw, …)

Page 4: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course Description

• Development of the basic concepts and techniques from Computer Science I and II into practical programming skills that include a systematic approach to program design, coding, testing, and debugging. Application of these skills to the construction of robust programs of 1000-2000 lines of source code. Use of programming environments and tools to aid in the software development process.

• NOTE: You must have taken CSE 214 and received a grade of "C" or better in order to take this course

Page 5: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course Topics

• Project Technologies Basics– GUIs & Event Programming– Image Processing– Multithreaded programming

• Software Design (UML)

• Design Patterns

• Programming style

• Algorithms and data structure selection

• Code maintenance & documentation

Page 6: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course Topics (continued)

• Effectively using an IDE & associated tools for: – Designing– Code editing– Testing– Debugging– Revision control– Profiling– Documentation– Deployment

Page 7: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Textbook #1

• Object Oriented Design & Patterns, 2nd Editionby Cay HorstmannPublished by Wiley, 2005,ISBN 0471744875

Page 8: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Textbook #2

• Java How to Program - 7th Editionby Deitel and DeitelPublished by Prentice Hall, 2006.ISBNs 0132222205 & 9780132222204

Page 9: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course Language• Java 1.6 (a.k.a. Java 6)

– For info on changes from Java 5: • http://java.sun.com/javase/6/webnotes/features.html

• Download– http://java.sun.com/javase/downloads/index.jsp

• API:– http://java.sun.com/javase/6/docs/api/

• Tutorials:– Trail: Creating a GUI with JFC/Swing

• http://java.sun.com/docs/books/tutorial/uiswing/index.html

– Trail: Working with Images• http://java.sun.com/docs/books/tutorial/2d/index.html

– Lesson: Threads: Doing Two or More Tasks at Once• http://java.sun.com/docs/books/tutorial/essential/threads/index.html

Page 10: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Course IDE

• eclipse

• Download– http://www.eclipse.org/downloads/index.php

• Tutorials– to be given by TAs & posted online

Page 11: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Why Java?• Half of all server application programming is

done using the Java platform

• What’s that?– enterprise software– What’s that?

• ecommerce, resource planning, etc.

• What is used for the other half?– .NET

Page 12: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Lab Facilities

• We will use the Computer Associates Transaction Processing Lab (Trans Lab)– http://www.translab.cs.sunysb.edu/– CS 2114 & 2126

• Login– all registered students have accounts– http://www.translab.cs.sunysb.edu/studentAcct.html

• Room combo– soon to follow

Page 13: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

How are grades computed?• 4 Homework Assignments 36 % (9% each)• Written Midterm Exam 15 %

Wednesday, March 11th, 2:20–3:40pm• Design/Coding Midterm Exam 19 % Wednesday, April 22nd, 2:20–3:40pm• Software Tool Proficiency Quiz 5 % Monday, May 6th, 2:20–3:40pm• Final Exam 25 %

Wednesday, May 13th, 2:00–4:30pm 100 %

• Note CEAS Policy: The Pass/No Credit (P/NC) option is not available for this course.

Page 14: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

ACADEMIC DISHONESTY

• All work you submit for homework, projects, or exams MUST be your own work.

• If you cheat or aid someone in cheating, you will automatically fail this course and be brought up on charges of academic dishonesty without warning.

• NO EXCEPTIONS WILL BE MADE!

Page 15: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Other Important Info• DISABLED STUDENT SERVICES (DSS)

If you have a physical, psychiatric, emotional, medical or learning disability that may impact on your ability to carry out the assigned course work, please visit DSS in the ECC Building, 633-6748/TTY.

• CELLULAR PHONESPlease turn off cellular phones during class.

Page 16: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Rules of thumb to remember

• 3 ½ months is not a long time

• Points are more difficult to makeup later in the semester

• Have the same sense of urgency for the 1st assignment as you would for the 4th

Page 17: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

What is a framework?• Groups of classes that form the basis for customization

– cooperating classes for a particular technology• ex: multimedia, the Web, databases, etc.

– used to build new applications & other frameworks– what’s Java’s application framework for the domain of GUI

development?• Swing (a framework built on the AWT framework)

Page 18: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Applications Using Frameworks

• How can this happen?

Framework

Application #1 Application #2

App1 calls methods of Framework objects

App2 calls methods of Framework objects

Framework calls methods of App1 & App2 objects

Page 20: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Framework Documentation

• Frameworks are more than just one class, but many classes working together

• Framework developers must explain how to use them all together properly– API– Tutorials

• Frameworks are open source as well as for purchase, ex:– http://www.j2eeolympus.com/J2EE/Servlets/ServletsFrameworks.jsp

– http://www.runtime-collective.com/JavaXML.html

Page 21: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Who cares?

• We are constantly using Java frameworks

• Think about how you might create a framework

• Gaining the ability to make frameworks will make you a powerful developer

Page 22: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

What’s a mod?

http://en.wikipedia.org/wiki/Mods_%28youth_movement%29

Page 23: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Mods

• Short for modification• Change an existing game/application to

incorporate your own creative/productive/sick ideas

• Modding techniques:– change artwork, music, etc. via plugging in your own– change source code

• See:– http://www.planetdiablo.com/modding/basics/– http://www.game-mods.com/

Page 24: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Well known game mods

• Entirely new content– Neverwinter Nights– Starcraft– Id games

• Customizable UI components– World of Warcraft (WOW) add-ons

• Etc.

Page 25: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Why do we care?

• Because you will be making a game such that it can accommodate mods

• Then you will be making mods for your game

• Then you will be sharing your mods with each other

Page 26: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Sample Project?

Page 27: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Sample Project?

Page 28: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Why make mods?

• Because it makes you design anticipating later changes and additions to your program

• We will be making 2 types of mods:– maps (plugging in our own artwork/level design)– add-ons (providing additional UI utility)

• Both mods should be addable without program recompilation

Page 29: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

The HW Plan• HW 0 – your contract to be academically honest and

understand rules of Project• HW 1 – Learning the necessary Java technologies for

making a mini version – GUIs– Threads– Image Processing

• HW 2– Create your Design & Documentation

• HWs 3 – 4– code, test, profile, document (some more) & deploy your game– review & update your design as well– create mods for your game

Page 30: CSE 219 Computer Science III Introduction. Who am I? Ahmad Esmaili E-mail: esmaili@cs.sunysb.eduesmaili@cs.sunysb.edu Work phone: 631-632-1628 Office

Pre-HW0 (this means today)

• Play and completely understand all the rules of the project ASAP