cse 219 computer science iii introduction. who am i? ahmad esmaili e-mail:...
Post on 27-Dec-2015
219 Views
Preview:
TRANSCRIPT
CSE 219Computer Science III
Introduction
Who am I?Ahmad Esmaili
E-mail: esmaili@cs.sunysb.edu
Work phone: 631-632-1628
Office Location: CS Room 1438A
Office hours: Mondays 9:15-10:30am & Fridays12:45 –2:00pm or by appointment
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, …)
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
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
Course Topics (continued)
• Effectively using an IDE & associated tools for: – Designing– Code editing– Testing– Debugging– Revision control– Profiling– Documentation– Deployment
Textbook #1
• Object Oriented Design & Patterns, 2nd Editionby Cay HorstmannPublished by Wiley, 2005,ISBN 0471744875
Textbook #2
• Java How to Program - 7th Editionby Deitel and DeitelPublished by Prentice Hall, 2006.ISBNs 0132222205 & 9780132222204
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
Course IDE
• eclipse
• Download– http://www.eclipse.org/downloads/index.php
• Tutorials– to be given by TAs & posted online
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
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
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.
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!
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.
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
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)
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
Other Java Frameworks
Table 1: Java Frameworks
Application Frameworks
Database JRelational
Intelligent Agents Jade, JAF, ABLE
Logging Java logging framework, Log4J
Multimedia JMF
Networking RMI
Testing JUnit, Cactus, JFCUnit, Abbot, Hansel
Web Development Struts, WebWork, SOFIA, Cocoon, JBoss, JOFFAD
XML Dom4j, JBind
Others Java Collections, BSF, Joone, ...
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
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
What’s a mod?
http://en.wikipedia.org/wiki/Mods_%28youth_movement%29
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/
Well known game mods
• Entirely new content– Neverwinter Nights– Starcraft– Id games
• Customizable UI components– World of Warcraft (WOW) add-ons
• Etc.
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
Sample Project?
Sample Project?
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
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
Pre-HW0 (this means today)
• Play and completely understand all the rules of the project ASAP
top related