CMPSCI 305j Syllabus
Computer science encompasses a wide range: designing and building computer devices (e.g., your cell phone, laptop, weather censors, robots), designing and building programming languages (e.g., Java, Python, C) and the supporting software that control these devices (e.g., operating systems, compilers), and the actual applications themselves (e.g., reading an x-ray, video animation, voice mail). This course focuses on how to write computer programs that solve problems on a general purpose computer.
Programming languages are one of the key tools that computer scientists design and use to help themselves and others use computers. This course will use a particular programming language, Java, to introduce you to how to use a computer to solve problems. In this course, most of your learning will take place when you are putting in to practice the concepts from the book and lectures to solve more and more complex problems using more and more sophisticated programming practices. You will learn through doing. Most of your grade will therefore be based on developing your programming skills.
At the end of the course, you will be able to solve problems that are relatively modest in size and scope using Java, and you will understand enough about programming in general to be able to quickly learn another programming language. You will have been exposed to a wide variety of problems on which computer scientists work.
Computers and Accounts
You must apply for a computer science account no later than Friday January 19 at 1pm. You will have an opportunity to sign up in your discussion section on Tuesday January 16. It takes at least one business day for your account to be activated. You will use your account in all your discussion sections starting on Tuesday January 23, and for turning in you programming assignments. You may use the lab computers or your home computer to do your assignments.
To sign up, use your own computer or use the computers in the Micro Lab (PAI 3.12) or Elements Lab (PAI 5.38) and follow the instructions for: Online Account Sign up
|Monday-Thursday:||9 am - 1 am|
|Friday:||9 am - 8 pm|
|Saturday:||10 am - 6 pm|
|Sunday:||12 noon - 1 am|
Use the newsgroup for all but personal issues. You must read the newsgroup, and you should post course related technical questions and responses to this newsgroup. You should make heavy use of the course newsgroup and of TA support, if you have technical or administrative questions or problems.
Requirements and Grading
You must attend class regularly, read the assigned reading before class, and participate in class discussions. The course will be graded on a curve.
Pair Programming. You must do the assignments in a pair. We use pair programming because it is a more effective and time efficient way to learn the material. Researchers have shown that students perform better in the class in which they use pair programming than without, and also they perform better in subsequent classes with or without it. These results indicate that you learn more and better with pair programming. Please read:
You must follow the pair programming guidelines: the pair must sit, design, and program together at least 80% of the time, and split keyboard time evenly. Each student can work independently for at most 10% of the effort/time. The person at the keyboard is the driver, and the person sitting next to him/her is the navigator. We recommend you alternate driving and navigating every 30 minutes.
Find a partner in your discussion group since you will be working together both in the discussion section on assignments and on the weekly programming assignments. You may keep the same partners for the entire course or change partners between assignments. If we have an odd number of students, one student will pair with the TA or proctor.
Once you begin an assignment with a partner, you cannot re-pair for that assignment. In an emergency (your pair gets sick, flips out, etc.), you may independently do that one, and only one, assignment. You must first send an email to the instructor and TA. With their approval, you may turn in your assignment. In the comments of your class file(s), you must include (1) your initial partner, (2) a copy of the email correspondence with the TA and/or instructor.
Due Dates and Late Policies
This course covers a lot of material and late assignments will seriously impact your ability to learn the next section of the course. For documented illness or death in the family that results in missing quizzes, the assignment will be excluded from your grade average.
Pair Name 1: Slip days used (this project): _______ Slip days used (total): ______
Pair Name 2: Slip days used (this project): _______ Slip days used (total): ______
No other extensions will be granted. We recommend that you plan to turn your assignments on time and only use your slip days for unexpected illness. We will grant extensions on labs only for documented illness and death in the family that consumes more than 4 days.
Cooperation and Cheating
The Student Code of Conduct documents your rights and responsibilities as a student.
Copyright Notice: All of these materials are part of a first course on programming. You must ask me permission to use these materials. I do not grant to you the right to publish these materials for profit in any form.
Kathryn S. McKinley, Professor, The University of Texas at Austin