Class times and location: MW 1500 - 1615 in WSQ 109 Office Hours: MW 1615 - 1640 in WSQ 109 and on Piazza Email: kathleen@laughton.com
Final: May 16 12:14 - 14:30
Description
Basic skills and concepts of computer programming in an object-oriented approach using Java. Classes, methods and argument passing, control structures, iteration. Basic graphical user interface programming. Problem solving, class discovery and stepwise refinement. Programming and documentation style. Weekly hands-on activity.
Eligibility for Math 30 or Math 30P or instructor consent.
Textbook
Cay S. Horstmann, Big Java 5th Edition. ISBN: 9781118607718
This is a custom version designed to save you money. It is only available in the bookstore.
In the past, the bookstore had a trial version of the ebook available. Some students used that until they were able to buy the book. Check it out.
Student Learning Outcomes
Upon successful completion of this course, students should be able to:
Analyze and explain the behavior of programs involving the fundamental program constructs
Write short programs that use the fundamental program constructs including standard conditional and iterative control structures
Identify and correct syntax and logic errors in short programs
Choose arrays or array lists for a given problem and write short programs that use arrays or array lists
Design and implement a class based on attributes and behaviors of objects
Construct objects using a class and activate methods on them
Write javadoc comments for classes and methods
Write graphicss program that draws simple shapes
Use interfaces and inheritance to describe common behavior of classes and write programs that use that common behavior
Use an integrated development environment and a debugger
Course Mechanics
Laptops
You will be required to bring a wireless laptop to all (!)
classes and exams.
Homework submission
You will submit your homework and exams in Canvas
Course Requirements
Exams
Two in-class exams (15% per exam) and a final exam (25%). Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency. Makeup exams may be oral.
Programming Assignments
Two assignments per week (30%). Schedule your time well to protect yourself against unexpected problems. I suggest you ignore the official deadlines and complete the assignments 24 hours earlier. Late work is not accepted, and there is no extra credit or makeup work. All homework is due at 10:59 pm, but I will give you an hour's grace period and accept assignments until 11:59 pm. Do not ask for an additional extension because your Internet went down at 11:58.
Participation
I expect each student to be present, punctual, and prepared at every scheduled class and lab session. You will be graded on particpation in class and the online discussion in Piazza. You are expected to post regularly either asking or asnwering questions. You can post anonymously, but then you do not receive credit. You also are expected to answer the in-class questions that will be asked in Piazza (5%)
Quizzes
There is a quiz due every Sunday and Tuesday on the assigned reading for the next class meeting (5%)
Labs
You must enroll for a lab section and attend all labs. You will fail the course if you don't pass the lab section. Provided you get a passing grade in the labs, it counts as 5% of your total grade.
Time Spent
As per Policy Recommendation S12-3, success in this course is based on the expectation that students will spend, for each unit of credit, a minimum of forty-five hours over the length of the course for instruction or preparation/studying or course related activities.
This is a 4-unit/15-week class, so you should expect to spend at least 180 hours per semester or 12 hours per week on this class: 2.5 hours per week in the lecture, 2.5 hours per week in the lab, and 7 hours per week with preparation and homework assignments.
Additional Information
Quizzes
One quiz before each class meeting except for exams, i.e. every Sunday and Tuesday night
Quizzes are in Canvas
Once you start a quiz, you must finish it, or Canvas won't give you any points.
Piazza
Have a question? Ask it on Piazza
Have an answer? Submit it.
You get a point for each question or answer.
If you email me a question about the course material, I will repost it on Piazza and answer it there. You won't get a point for that.
Only email me with personal and confidential questions.
Clicker Questions
Several times per class, I'll ask a “clicker” question.
Real clickers are hardware devices that cost money. We use Piazza instead.
Occasionally, you'll see survey questions with titles such as Clicker Question 1 in Piazza. Leave them alone until I announce in class what the question is :-)
Once I put up a slide with the question and options, log in to Piazza and answer it.
You get a point for each answer (even if it's wrong).
CS46A/B Lab Rules
The lab is a required part of your course. If you fail the lab, you will fail the course.
You must be present in the lab at the scheduled time. You must arrive at the scheduled time and stay until the lab instructor dismisses the lab. (If you and your partner have completed the lab,help someone else. Or you can work on something else.) Sign in and out in order to get credit for the lab. You can't make up a lab. You won't pass the class if you don't show up for at least 80% of the lab sessions.
You work in pairs. (There may be one group of three if there is an odd number of students in the lab. Such an odd group has one driver and two scribes, each of whom writes up the answers in their own words.)
If your lab partner is absent, you must contact the lab instructor and ask to be paired up with someone else. You receive no credit for a lab on which you work alone.
If you are late and your lab partner has already been assigned to work with someone else, you must wait until the lab instructor assigns you a temporary partner. If you are lucky, someone else is late too and you get to work with that person. If not, you won't get points for today's lab. Don't be late—you have a 50% chance of not getting points for the lab. (Actually, that's an oversimplification that assumes that there are lots of latecomers. If you are very late, your chance of not getting points approaches 100%.)
You and your lab partner switch roles each week. One week you are the scribe, submitting answers to the questions; another week, you are the driver, writing code and submitting the code and program output. In order to ensure that you switch, a scribe report is worth more points than a driver report. You won't pass the class if you aren't the scribe at least 40% of the time. Think of being scribe all the time? Not so fast. You only get 2 points if you are the scribe twice in a row.
If your partner changed, either because your regular partner was absent or the lab instructor reassigned partners, then
If it's your turn to be scribe and today's partner's turn to be driver, or the other way around, all is well.
Otherwise, you toss a coin to determine who does what, and each of you gets three points. Note this in your lab report so the lab instructor knows.
The lab instructor assigns the lab partners. Initial assignments are random, but as the class progresses, the lab instructor will attempt to match partners with similar skill levels. You can confidentially request that your lab partner be changed, and a new one will be assigned to you. Do not attempt to work with a self-chosen partner. You will not receive credit for a lab in which you work with a partner that was not assigned to you.
You should attempt to complete each lab, but you are not required to do so if you run out of time. You get full credit for an attempt, provided you turn in your report. You need not finish the work on your own time, but of course it would be a good idea if you did.
You upload in your reports to the learning management system before you leave the room.
Some labs ask you to do work on paper. Turn in the work before you leave the room in order to get full credit for the lab.
The lab instructor will deduct points for reports that are excessively sloppy or that don't follow the lab rules.
If you and your partner are stuck, ask the lab instructor for help.
Don't ask the lab instructor about the homework. The lab is not a general tutoring facility.
Lab scoring
Scribe: 4 points
Driver: 2 points
≥ 42 points: A
39 - 41 points: B
36 - 38 points: C
33 - 35 points: D
< 33 points: F in the lab and in the class
Mentoring
Mentoring is available. If you find yourself struggling, take advantage of it.
You will receive a letter grade for each of the exams, the finals, the total
homework performance, labs, paticipation in online discussion, and quizzes.
Letter grades are obtained by adding and curving the numeric scores. When
determining a curve, the cutoffs are guided by the university
definitions for letter grades:
A+, A, A- excellent
B+, B, B- above average
C+, C, C- average
D+, D, D- below average
F failure
Letter grades are converted into number grades, as specified here,
except that an A+ is counted as 4.3, and weighted with the percentages given in
the Course Requirements section. The weighted average is rounded towards the
nearest letter grade, which is your class grade.
BSCS Program Outcomes supported by this course:
(a) An ability to apply knowledge of computing and mathematics to solve problems
(b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
(c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
(i) An ability to use current techniques, skills, and tools necessary for computing practice
(j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
(k) An ability to apply design and development principles in the construction of software systems of varying complexity
Miscellaneous Policies
Add Policy: I will randomly choose among add requests that I receive
in an email by 2000 the day of the first class, and in the order of receipt thereafter.
If there is space, I will reply to your email with an add code. You must use
your add code within 24 hours and email me to confirm that you added the class,
or the add code will be reassigned to someone else. In your email, specify your classification (Freshman, ... Senior 1, Senior 2, Open university.
Individual Work: All homework and exams must be your
own individual work. It is ok to have general discussions about homework
assignments, or read other material for inspiration. You may never
copy anything from anyone without attribution, with these exceptions—you may
copy from the textbook, the labs, or anything we do in class. For homeworks and exams, you may not copy anything from
any other student at all, and you may not collaboratively produce results in
pairs or teams.
Publicly Viewable Work: Your class work (including homework, exam,
and project work) may be viewable by other students of this course. Your grades
will not be viewable by others.
Copyright of Materials: All materials created by the instructor for
this course, including lectures, handouts, homeworks, exams, solutions,
projects, and so on, are copyrighted property of the instructor. You may
transscribe or record lectures or copy course materials for the use of yourself
and other students registered in this course. You may not sell or give
transscriptions or recordings of lectures or copies of course materials to
others without the prior written consent of the instructor.