Module 0: Course Goals and Logistics


Objectives

 

By the end of this module you will be able to:

 


People, places, policies

 

People:

Places: Policies: Review the course info and policies page.
 

In-Class Exercise 1:

 


Websites, logins and classroom tech

 

You will need usernames and passwords (logins) for:

  • Blackboard. Same as your GWMail username/password.
  • The machines in Tompkins-411. This is your SEAS username/password.
  • Hobbes. This is a Unix server that you will access from either your PC in T411 or your own computer. For hobbes, use your SEAS username/password.
 

In-Class Exercise 2: Login to Blackboard and try out the first quiz.
 

In-Class Exercise 3: Login to Blackboard and complete the Get-Acquainted survey.
 


Books

 

The textbook for the course: Building Java Programs: A Back to Basics Approach by S.Reges and M.Stepp (2nd edition).

  • Must purchase new
           => Comes with password to a website.

  • Our order of topics is roughly aligned with the book
           => We will point out differences.

  • Very useful: self-check exercises at the end of each chapter.
 

The notebook:

  • Marbled-cover notebook, about 75-100 pages.

  • Set aside pages 1-5 for keeping a record of work. This will be in the form of a ledger:
    # Date Work completed/submitted
           

  • Set aside the next 28 pages for your weekly reflection.

  • Use the remainder for notes, jotting down important points etc.

  • Important: bring your notebook to all classes and labs.
 


Our first program

 

We will write our first program in the Java language with these steps:

  • Use a text-editor to write the program.
  • Compile the program.
  • Execute the program.
This is the program we need to write:

 

In-Class Exercise 4: Follow these instructions for writing our first program in T-411.
 

Thus, we have just solved this exercise:

In-Class Exercise 5: Write a program to print "Hello World!" to the screen.
 


A peek at a more complex program

 

We will examine a program that counts the number of primes in the range 2 to N, where N is some upper limit like 100.
 

In-Class Exercise 6: What is a prime number? Look up the Wikipedia entry on the Sieve of Eratosthenes and explain how it works.
 

We'll now peek at two programs that implement the idea, just for the sake of seeing what such programs look like.

Program 1:

 

Program 2:

What to keep in mind at this time:

  • The above are programs that solve the exercise

    In-Class Exercise 7: Write a program to compute the number of primes between 2 and some number N.

  • At this time, we could probably edit (type the program), compile and execute.
           => Without understanding the program itself.

  • The program has a lot of gobbledygook we don't yet understand.

  • Yet, we can perhaps see some structure and discern "pieces".

  • The goals of this course:
    • To be able to understand the elements of the Java programming language.
    • To be able to solve exercises like the above, from scratch, in the Java programming language.
    • To read code, write code, and debug code (figure out what's wrong when it doesn't work.

  • As an aside: the second program is not as efficient as the first.
           => This is mostly a topic for later courses.

We'll make a rough analogy with learning a foreign language:

This course is for the novice
       => Absolutely no background needed.
 


How to succeed in this course

 

In-Class Exercise 8: What's the most alien world you've seen in movies?
 

The challenge in learning programming:

  • #1: it's an alien world.
           => Takes getting used to.

  • #2: it's a mental skill
           => Skills are acquired slowly, and in fits and starts.

  • #3: there are confounding issues
           => some knowledge of (regrettably) computerese needed.

  • #4: it's easy to feel overwhelmed or intimidated
           => your neighbor may appear to be "getting it" while you feel you don't.
 

What you should expect:

  • You can't learn instantly
           => You may have to see a concept multiple times to "get it".

  • You may occasionally feel bewildered.

  • There are some things that can't be understood at this stage.
           => Not enough background.

  • It's deceptively easy to understand an idea in class but devilishly harder to do it yourself.
 

How to succeed:

  • Stay on top of all material in every class and lab.
           => Each class builds on previous classes
           => Can't afford to let anything slide.

  • Be willing to put the effort
           => Do all exercises, assignments etc.

  • If lost, get help early.

  • Practice being bullish.
 

The coursework in this course:

  • Reading and "Pre" exercises before each class.

  • "Post" exercises after each class.

  • Lab work (in teams).

  • Keep notebook current.

  • Exams: you will write code in class for exams
           => Can't afford to lean on your friends.



© 2011, Rahul Simha