130 likes | 201 Views
Learn why Java is ideal for problem-solving in computer science labs, with hands-on exercises and one-on-one assistance. Grading system, assignments, and tips for success included in this comprehensive syllabus guide.
E N D
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 • abrady1@mix.wvu.edu • 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