Welcome to Bienvenue 308 203 A Introduction to
Welcome to / Bienvenue à 308 -203 A Introduction to Computing II Fall Session 2000 Instructor: TA: Course website: William Renner TBA http: //www. cs. mcgill. ca/~cs 203
Prerequisites • Official prereq: 308 -202 • Previous programming experience - Java: Great! - C++: OK • If not familiar with Java or C++, see me
Things you should know something about already • Variables and data types (e. g. ints, floats, chars) • Arrays • Loops • Procedures and Functions (and arguments and return values) • What is a reference (or pointer)
Things we will explore • Development of clear, reusable code by OOP • Design and implementation of software systems • A basic toolbox of algorithms and data-structures • Analysis of computational complexity
Syllabus I. Introductory material -Review of Java Programming -Object-Oriented Programming II. Basic Data-Structures and Algorithms - Lists/stacks/queues - Big O notation - Trees, searching and sorting - Graphs III. Advanced topics (as time allows) - Concurrency and deadlock - A smidgeon of AI
Grading Scheme • Bi-weekly assignments (20%) • Mid-term exam (20%) • Final exam (30%) • Project (30%)
Assignments • Bi-weekly homework • Written questions hand in on paper only • Programming questions Hand in as hardcopy: - printout of. java files - test-cases to show correctness! Hand in on diskette -. java/. class files and test cases • Place in box outside MC 100 N
Project Phase I: (tentatively due around Nov 1) Creation of a software module of moderate size Phase II: (due at the end of the term) Integration of several software modules into a functioning software system
Exams Mid-term exam • Tentatively ~mid-October • 20% of final grade Final exam • As scheduled by the Department • 30% of final grade
Programming at Mc. Gill • Computer lab Mc. Connell 106 N • Java/KAWA pre-installed • Friendly, smiling lab consultants on duty Programming at home • JDK http: // www. java. sun. com • KAWA http: //www. tek-tools. com/kawa/ • You’re your own consultant!!
JDK Tools • Compiler (javac) - javac foo. java - source code (foo. java) object code (foo. class) • Virtual machine (java) - java foo [arguments…] - runs the code • Debugger (jdb) - jdb foo - lets user control execution of foo with commands to step through lines of code and inspect variables
Integrated Development Environments (IDEs) Tools which integrate development resources in a clear and intuitive GUI (Graphical User Interface), i. e. with windows, menus, dialog boxes etc. . • Text editor • Compiler • Debugger • Version management • Search and other utilities The alternative: invoke javac, java, jdb as well as emacs, cvs, grep, etc. or equivalent tools from a Unix or DOS command shell (yuck)
Some IDEs for Java • KAWA (Tek-Tools) • Forte for Java (Sun) • JBuilder (Borland) • Visual Café (Webgain) • Code Warrior (Metrowerks)
Any Questions?
- Slides: 14