DOC PREVIEW
UMD CMSC 433 - CMSC 433 Introduction

This preview shows page 1-2-3-4 out of 11 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1!CMSC433, Spring 2009 Programming Language Technologies and Paradigms Introduction Adam Porter Jan 27, 2009 2 Course Goal To make you a better programmer • Deconstruct relevant programming problems • Solve them in an object-oriented style, focusing on – Reusability – Maintainability (clarity) – Design – (Performance is secondary)2!3 Approach • Will use the Java programming language exclusively – But the ideas apply to other languages too • Sequential object-oriented (OO) programming – Basic principles and tools, and – Design patterns to improve reusability and reliability • Concurrent OO programming – Emphasis: shared-memory multi-threading (Java Thread class) – Also distributed message passing (e.g., RMI) 4 Topics • Java review, new features in Java 5.0/6.0 • Programming techniques and tools – Specifications and testing • Design – Design principles, software architecture & design patterns • Concurrency – Concurrent programming in Java – Design patterns • Distributed programming • Special topics – TBD3!5 Style • Interaction – This is your course: what do you want to learn? • Discussion – Not just professor/TA to student, but student to student, with regard to ideas, techniques, and solutions • Learn by doing – If you don’t put effort into the programming projects, you will learn very little 6 Texts4!7 Additional reference materials • Lots of resources – many on-line and free • Will be pointed out during semester • Find your own – If you copy code from any resource, acknowledge it 8 Projects • Six total projects – Will sometimes extend project templates we provide, but generally will write from scratch • Focus on networked applications – Encourages modular, abstract design – Admits natural use of concurrency and distribution – Relevant in our connected society5!9 Project Submission • Projects due at Midnight on due date – By Unix time of day – You must submit a good-faith effort • You can be failed for the course if you do not – Late submission up to 9am the next morning • Score is multiplied by 0.8 (it is generally not in your best interest to submit late) – Only last submission will be graded! 10 Project grading and class accounts • We will use the SubmitServer system for project submission • Linux lab accounts available – Can use your own campus accounts for course work • Course grades and accounts will be managed using grades.cs.umd.edu – All linked from course web page resources6!11 Software • Will be using: – Java 1.5+ – Eclipse 3.1+ IDE (optional) – Junit 4+ 12 Open Source Contribution Project • One special project: (grade included in final exam) – make a contribution to a large open source software project – large meaning 40,000+ lines of code • Everyone has to pick something different – could be different contributions to same project7!13 A simple contribution: bug fix • Find a large Java App – Download it, build it, run it. • Run FindBugs over it • Understand, document code defect • Write test cases • Fix defect • Submit your work to the project 14 More aggressive contributions • Find a problem report in a bug database – Figure out what the defect is – document and fix, as before • Add a feature to an open source project – e.g., “Mozilla’s new HTML editor has support for ftp, but not sftp -- add sftp support” -- Jeff Hollingsworth – Plenty of stuff for FindBugs – Ask around (faculty, others)8!15 Grading of open source project • Project intended to get your feet wet with real software • Grade not based on size of contribution, but on how seriously you take it • Just blasting email to the developers list (“Hey, line 45 of FooBar.java contains a bug”) won’t count for much • For overachievers, prizes for anyone who does a significant contribution 16 Exams • One midterm: March 12th • Final: Monday May 18, 10:30am-12:30pm9!17 Grading # % each % total Projects 5 10 50 Mid-terms 1 20 20 Final 1 30 30 18 Discussion and Questions • Web forum – Web-based discussion pages – Can post to from off-campus – Linked from course web page • Post questions, pointers to resources, test cases. – Will be monitored by professor and TA – Don’t cross the line! Help on ideas of projects; never post code or pseudocode that gives away the exact approach.10!19 Office Hours • Professor Adam Porter, [email protected] – 4125 AVW • TA: Nima Asadi, [email protected] – Office hours in 1112 AVW • All hours posted on web page – http://www.cs.umd.edu/class/Spring2009/cmsc433 – Or set up an appointment 20 Excused Absences • Religious holidays or other personal conflicts – Let us know as soon as you get the project • Medical and other emergencies – Must provide documentation stating what dates/times you were incapacitated – Self reporting is not sufficient11!21 Stay up to Date http://www.cs.umd.edu/class/spring2009/cmsc433 Contains: • Announcements • Lecture notes • Project assignments • Resources • And


View Full Document

UMD CMSC 433 - CMSC 433 Introduction

Documents in this Course
Trace 1

Trace 1

62 pages

Reflection

Reflection

137 pages

Testing

Testing

25 pages

Paradigms

Paradigms

10 pages

Testing

Testing

17 pages

Java RMI

Java RMI

17 pages

Java RMI

Java RMI

17 pages

Java RMI

Java RMI

17 pages

Trace 1

Trace 1

46 pages

Jini

Jini

4 pages

Final

Final

15 pages

Java RMI

Java RMI

13 pages

Testing

Testing

16 pages

Load more
Download CMSC 433 Introduction
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CMSC 433 Introduction and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CMSC 433 Introduction 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?