CS 110 Lab Spring 2011. Outline >Computer Science Lab Overview (syllabus)< Why we're learning...
-
Upload
bruno-thomas -
Category
Documents
-
view
213 -
download
0
Transcript of CS 110 Lab Spring 2011. Outline >Computer Science Lab Overview (syllabus)< Why we're learning...
CS 110 Lab
Spring 2011
Outline
• >Computer Science Lab Overview (syllabus)<
• Why we're learning programming with Java
• How to succeed
Personal Introduction
• Your TA: Adam Brady– [email protected]– WVU Alum– Graduated May ’09 with honors– Master’s student in CS– Data Mining / Machine Learning Researcher– Geek interests: Empiricist Philosophy, Computer
Science Education, Homebrewing, EVE: Online
Course Overview
• Hands on programming exercises– Programmers learn by doing
• One-on-one Assistance– Immediate feedback when you get stuck
• Structured time to absorb concepts– It's very hard to "cram" for CS exams
Course Overview
• Computer Science isn't using computers
• Computer Science is PROBLEM SOLVING
• CS Lab helps you organize your thoughts:– break down big problems in to manageable parts– solve these sub-problems using a formal language
Assignments
• Best 10 of 12+ In Lab Assignments– To be completed during lab– Cannot be made up– Demonstrate concepts already learned in lecture
• 5 quizzes, announced in advance• 5 Out-of-lab projects– Larger, more complex assignments– Completed on your own (with help from me)
Grading
• Point system, total of 250 points
• 10 points per quiz (50 points total)
• 10 points per in-lab assignment (100 total)
• 20 points per out of lab project (100 total)
Outline
• Computer Science Lab Overview (syllabus)
• >Why we're learning programming with Java<
• How to succeed
Why Java?
• To those with some experience, a few notes about Java vs other languages:
• C is faster, but terrible for large projects“all the power of assembly language with all the ease of use of assembly language” -- unknown
• C++ is scales better, but you have to still manually manage memory.
“C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.” -- Bjarne Stroustrup
Why Java?
• Python is simpler and supports garbage collection, but lacks type safety.“Python: executable pseudocode.” --comp.lang.python
• Lisp is simpler, faster, scales well, supports garbage collection, and is so powerful it can easily implement other languages in itself. (It’s also very, very hard to learn well.)“[Lisp] is the only computer language that is beautiful.” -- Neal Stephenson
So Why Java?
• Industry Acceptance– Java was designed for writing massive programs with
hundreds of authors. Businesses love it.• Type Safety– Java is strict about what variables can contain. You’re less
likely to make accidental mistakes.• Automatic Memory Management– Garbage Collection makes life easier
• The Java API– Thousands of pre-written “classes” you can use in your
programs to do almost anything.
Outline
• Computer Science Lab Overview (syllabus)
• Why we're learning programming with Java
• >How to succeed<
How to Succeed
• Always come to lab on time
• Don’t hesitate to ask for help
• Start out-of-lab projects early
• Practice, practice, practice