CS105 Computer Programming in Java
Fall 2004
Instructor: Roberto E. Lopez-Herrejon (rlopez@cs.utexas.edu)
This course is an accelerated and fast-paced introduction to Java programming. The main objective is to get you the tools to tackle your future Java assignments and projects. Certainly we cannot cover all Java in 5 weeks but we will the basics and several advanced topics. Among the topics covered are the new features of Java 1.5: generics, enums, enhaced for, etc.
The official requisite is CS315 with grade at least C. So if you do not meet this requirement you need to talk to your undergraduate advisor to resolve the situation.
The real requisite is some basic programming experience in any language. Do not hesitate to contact me (mailto:(rlopez@cs.utexas.edu) if you have any concerns about the requirements for the class.
The policy for this course is that no auditors will be accepted.
Why you should take this course?
This class is a distilled coverage from basic Java constructs to advanced topics, this means that we go direct to the point, that is, we cover the essentials in a concise and short manner so that you don't have to spend a lot of time doing that on your own.
As the course proceeds we will not only focus on the programming part of Java but also in useful style and programming practices, like commenting the code, fine tuning the performance, and so on; practices that are important but we normally don't apply in our programming assignments. We will see tricks and tips that can save you programming time and give your programs a more professional look.
But most importantly you should take this course to have fun, you will have the chance to explore very neat and cool stuff and to play with tools and techniques that you find interesting.
You can use any Java book if you need more exercises or further information. The following books are suggested but no exercises will be assigned from them.
Java Precisely. Sestoft, Peter. MIT Press, 2002. A good quick reference book. If you have some previous Java knowledge or you don't need a lot of examples to learn this book is for you. It does not cover all the topics of the course, but it is the cheapest.
On to Java. Patrick Henry Winston and Sundar Narasimhan.Third Edition. Addison-Wesley, 2001. It provides more examples, yet it is not for quick reference and a couple of topics are not covered.
Java: An Introduction to Computer Science and Programming, Walter Savitch. Prentice Hall, 2003. Good book for students coming from other majors, and that do not have extensive programming experience. Provides plenty of examples and exercises, yet the order of the topics I don't think is appropriate. It does not cover a couple of topics.
Assignments, Exams, and Workload
Mastering a programming language (or anything for that matter) takes practice, so during the course there will be plenty of opportunities to practice the concepts presented in class.
Assignments. Assignments are for review, so if you find yourself doing something that does not look like what we have covered in class chances are you are doing something wrong. There will be 5 weekly assignments due on Mondays 4pm. You can substitute the last assignment with a project from another course (few restrictions apply).
Exams. One midterm outside class time date TBA, One final take-home exam.
Team Presentations. At the end of the semester students will work in teams to give a short 10-15 minutes presentation of a Java topic of interest to the team members.
No late assignments are accepted under any circumstances. No make up exams will be made. When turning in assignments make sure you follow the required procedure and format. For more information click here.
As you can see, there will be considerable amount of practice involved in the course, but the good news is that is only 5 weeks long.
Feel free to contact me if you have any concerns about the time commitments or workload for the course.
The final grade will consist of the following parts:
|
Items |
Percentage |
|
Assignments (drop worst 1-4) |
40 |
Midterm |
20 |
|
Final |
20 |
|
Team Presentation |
10 |
Class Participation |
10 |
There will be opportunities for extra credit.
You can register either with letter grade or credit/no credit option in which case you should obtain at least a C to get credit. The following is the guaranteed grading scale. No curves will be made.
|
Percentage |
Grade |
|
90-100 |
A |
|
80-89 |
B |
|
70-79 |
C |
|
60-69 |
D |
|
Less than 60 |
F |
The following is the list of tentative topics to be covered in the lectures. All the materials will be posted on Blackboard.
|
Lecture # |
Date |
Topic |
|
1 |
Wed 8/25 |
Welcome to the World of Java |
|
2 |
Mon 8/30 |
Control Flow and Methods |
|
3 |
Wed 9/1 |
Classes, Packages, Inheritance, Privileges |
|
|
Mon 9/6 |
Holiday. Labor Day |
|
4 |
Wed 9/8 |
More on Inheritance, Interfaces |
|
5 |
Mon 9/13 |
Java Generics |
|
6 |
Wed 9/15 |
Collections API |
|
7 |
Mon 9/20 |
Files and Serialization |
|
8 |
Wed 9/22 |
GUIs and Graphics |
|
9 |
Mon 9/27 |
Threads and Processes |
|
10 |
Wed 9/29 |
Team Presentations |
The following are some of the advanced topics that your team can choose for the presentation:
During the course we will be using Sun’s java compiler that can be downloaded from http://java.sun.com/ . We are going to use the latest version 1.5.
Academic Dishonesty
Group discussion is encouraged but submission and work on assignments is personal, except in the team presentation and final project. Any form of academic dishonesty will be handled according to the procedures set by the department and the university.
We are going to use Blackboard, so make sure you are familiar with it as soon as possible. Click here for a tutorial.
CPS (Classroom Performance System)
During most of the lectures we will be using CPS Classroom Performance System (CPS). Probably you may have used it for other courses before. We will be using the standalone system, so you do not have to register for it on line nor buy the control remote at Coop.
We will use the system for the active class participation evaluation.
Last update: August 20, 2004