Introduction to Programming
CS 312



Dr. Mary V. Eberlein
Department of Computer Science
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 312

"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



      
CS 312: A First Course in Programming
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 312 Prerequisites

  • Formal prerequisite: co-registration in calculus
  • 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
    • www.cs.utexas.edu/~eberlein/cs312/
    • 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 10-11 or 11-12 with instructor
    • Introduce concepts, examples, questions welcome
    • NO laptops or phones out during lecture
  • discussion section
    • with teaching assistant on Thursdays
    • required
    • Q&A on assignments
    • practice problems
    • quizzes very likely
    • NO laptops or phones out during discussion
  • discussion board - piazza
    • 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
    • assignments are posted on assignments webpage
    • see assignment page for guidelines
    • submitted using turnin (a website you use to submit your assignment)
    • creating problem solutions using Java
    • writing complete Java programs
    • usually done individually (sometimes with a partner, as indicated in assignment description)
    • assignments must be done alone unless I tell you otherwise
      • Sharing solution code is cheating --> F in course
    • graded by TA or proctor
    • scores posted on blackboard
    • you will be given a week to do most projects - start early
  • exams
    • two midterms and a final exam
    • study materials posted on class webpage
    • scores posted on blackboard
  • lab accounts
    • request an account today - see syllabus for instructions
    • turn in programming assignments via the turnin program


Labs
  • CS lab in PAI 5.38
  • need your CS account to log in
  • class software available on machines
  • PAI 5.38S has machines that are both Unix and Windows
  • work in Windows - to switch, press the silver button on the little black box (ask TAs during discussion next week if you can't find it)