Introduction to Programming
CS 305j

Dr. Mary V. Eberlein
Department of Computer Sciences
The University of Texas at Austin

Who Am I?

    • Undergrad: math major at Univ of South Alabama
    • Math grad school: MS, Univ of Illinois, Champaign-Urbana
    • CS grad school: PhD, University of Tennessee

  • Family
    • Married to Scott
    • Two children, Nathan and Lily

  • Professional
    • Taught at Tennessee Technological University for a year after graduation from other UT
    • Worked at small software engineering company in Knoxville for several years
    • Lecturer at UT-Austin since 2000

How to Succeed in CS 305j

"I would like to offer some advice about how you can best learn [this subject]. You will learn the most by actively working exercises. I suggest that you solve as many as you possibly can. After working the exercises your instructor has assigned, I encourage you to solve additional exercises..."
-- Kenneth H. Rosen, in foreword of his textbook Discrete Mathematics and Its Applications

"The key question to keep asking is,
Are you spending your time on the right things? Because time is all you have."
-- Randy Pausch, The Last Lecture

  • Do the exercises, rework the examples and take your own notes
    • You cannot learn to program by just listening in class and reading the text!
    • Don't just look at the exercises - do them.
  • Ask for help:
    •  instructor, TAs, proctors, tutors
    • other students (not on programming assignments!)
  • Run the code examples yourself
    • Experiment. Change Things. Break the Code!
  • Come to Class. Pay Attention. Participate.
  • Study regularly - most will need to invest at least 6-10 hours a week outside of class.
  • Do the reading assignments. 
  • Start programming assignments early - most of your learning comes from working on programming assignments and other programming exercises
  • Do the practice problems. Do the Javabat and Practice-It exercises.
  • Get to know your classmates. Talk to them about the course material and study with them.
  • Come to office hours. The TAs, proctors and I will all hold our office hours in the elements lab, PAI 5.38 (though you may sometimes have to look for me in the conference room next door)

CS 305j: A First Course in Computation
What Do We Cover?

  •  Solving problems with computers
    • Creating algorithms to solve problems
    • Implementing our algorithms in computer programs
      • We will use the Java programming language
      • The programming language is not so important - in other CS classes, you will use other languages

CS 305j Prerequisites

  • Formal prerequisite: Precalculus
  • I assume you have basic computer skills:
    • email
    • find a file on a computer
    • navigate the web
    • install programs on your computer
  • I assume that you have NEVER, EVER written a computer program

Course Materials and Procedures

  • This is very important!
  • If this is your first semester in college, you may be surprised at how much responsibility is placed on you for knowing what to do in a class.
  • Read the information on the course webpage and the syllabus  carefully, so that you know what is expected in this class.

  • website
    • most class materials are on website: software information, class schedule, assignments, study materials, link to discussion board
  • schedule
    • schedule of class topics
    • reading assignments
    • links to in-class slides
    • discussion meeting assignments
  • syllabus
    • very important
    • like a contract between instructor and students
    • class policies
  • textbook
    • required
    • reading assignments and practice problems
  • lecture
    • MWF with instructor
    • Q&A in class, not just lecture
    • NO open laptops in lecture
  • discussion section
    • with teaching assistant on Tuesdays
    • Q&A on assignments
    • practice problems
    • quizzes very likely
  • discussion board
    • sign up for discussion board immediately (link on course webpage)
    • post questions about class procedures and material
    • answer classmates' questions
    • announcements from me
    • NO chunks of code are allowed on board
  • assignments
    • see assignment page for guidelines
    • creating problem solutions using Java
    • writing complete Java programs
    • usually done individually (sometimes with a partner, as indicated in assignment description)
    • individual assignments must be done alone
      • Sharing solution code is cheating --> F in course
    • graded by TA or proctor
    • scores posted on egradebook
  • exams
    • two midterms and a final exam
    • study materials posted on class webpage
    • scores posted on egradebook
  • lab accounts
    • request an account ASAP - see syllabus for instructions
    • turn in programming assignments via the turnin program
    • slip days