DOC PREVIEW
UMD CMSC 433 - Introduction

This preview shows page 1 out of 4 pages.

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

Unformatted text preview:

CMSC433, Spring 2004 Programming Language Technologies andParadigmshttp://www.cs.umd.edu/class/spring2004/cmsc433Jeff FosterJanuary 29, 20042Course GoalTo make you a better programmer• Deconstruct relevant programming problems• Solve them in an object-oriented style, focusing on– Reusability– Maintainability (clarity)– Design3Approach• Will use the Java programming language exclusively– But the ideas apply to other languages equally well• Sequential object-oriented (OO) programming– Basic principles and tools, and– Design patterns to improve reusability and reliability• Concurrent OO programming– Shared-memory multi-threading (Java Thread class), and– Distributed message passing (Java Remote Method Invocation)4The Need for Abstractionfound = false;for (int i = 0; i < a.length; i++) if (a[i] == e) { z = i; found = true; }found = false;for (int i = a.length-1; i >= 0; i--) if (a[i] == e) { z = i; found = true; }Fragment 1:Fragment 2:5Abstraction• A better abstraction may be• Improves– Reusability– Maintainability• Abstraction is the key to good designfound = a.isIn(e);if (found) z = a.indexOf(e);6Topics• Java review (2-3 lectures)• Programming techniques and tools– Specifications and testing• Design patterns• Refactoring• Concurrency– Concurrent programming in Java– Design patterns– Distributed programming• To be determined– Possibilities include security, event-based programming,reflection, memory management, ...?7Style• 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 little8Textbooks• Primary Texts– Barbara Liskov and John Guttag, ProgramDevelopment in Java– Bruce Eckel, Thinking in Java (3rd Edition)• Java primer• A complete copy of the book can be downloaded for free• See web page for more useful resources9Class Accounts• We will have accounts on CSIC machines– Linux cluster; RedHat 9– Lab is in room 3107 CSIC• Class accounts will be emailed Friday morning– To the email account registered with UMEG• So make sure you check or forward that account!• Right after class: check your e-mail address on TESTUDO– If you don’t get an account by Friday, e-mail us• You may work on any machine you like, but...– Make sure you code runs on the linux lab10Software• Will be using Java 1.4.2– http://java.sun.com/j2se/1.4.2/docs/api• May wish to use the Dr Java IDE or Eclipse IDE– Installed on all CSIC machines– http://drjava.sourceforge.net/– http://www.eclipse.org• Will make use of JUnit testing package– Part of hw #2, may want to use later yourself– http://www.junit.org11Projects• Focus on networked applications– Encourages modular, abstract design– Admits natural use of concurrency and distribution– Relevant in our connected society• Start small and build up– Develop a sophisticated family of software by course’send12Project Submission• Projects due at 6pm 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.9• Online submission procedure (details later)– Submit early and often– E-mail course staff to recover previous submit• Don’t rely on us, though – back up your own work13More on Projects• Your programs must compile• Grading will generally be automated– Occasionally a single bug will cause a lot of test casesto fail; let us know if this is the case for you• Projects are the key to this course– Start early– Ask questions on newsgroup or in office hours14Project Commentary• For some projects, you will be emailed two other(anonymized) submissions– Respond with commentary on each with regard to thegoals and techniques we are teaching– You will be graded on the usefulness of yourcommentary15Exams• Midterm: Thursday, March 18– Just before spring break• Final: (Unofficial) Wednesday, May 19– Covers all of course– But roughly 2/3 new material, 1/3 old material• Do not schedule travel for these dates!– I will be jealous, not sympathetic16Tentative Grading Plan116# % total% each508.33Projects3030Final2020Mid-terms17Discussion and Questions• Read the newsgroup – csd.cmsc433– Only visible from inside UMD– For class discussion• TA’s will read regularly, but may or may not respond. Do notexpect real-time responses. This is not a substitute for comingto office hours.• NB: As in the rest of life, don’t believe everything you read!• Don’t cross the line– Know the academic integrity procedure and follow it(see web page for more)18Office hours• Professor Jeff Foster, jfoster at cs.umd.edu– 4129 AVW– M 1:30-2pm, TuTh 10:30 - 11:30am– Or by appointment• TAs: Mujtaba Ali and David Greenfieldboyce– Office hours in Linuxlab– MW 10am-12pm, W 3-5pm, F 12-1, 4-5pm• Always posted on class webpage:– http://www.cs.umd.edu/class/spring200419Stay up to datehttp://www.cs.umd.edu/class/spring2004/cmsc433Contains:• Announcements• Lecture notes• Project assignments• Resources• And


View Full Document

UMD 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 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 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 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?