San Jose State University
CS 46A - Introduction to Programming Section 1 Spring 2020
Course and Contact Information
||Duncan Hall 282
||Please use email
||email@example.com Or contact me through Piazza Or with Canvas messaging
||TR 2:45 - 3:15 or on Piazza anytime
||TR 1:30 - 2:45
||Eligibility for college level mathematics; Computer Science, Software Engineering, or Undeclared major; or instructor's consent.
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.
For the official catalog description, please visit the online catalog
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 graphics 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
- Big Java Early Objects--EText By Cay S. Horstmann. This book is displayed in VitalSourse.
Twice weekly before each class, you will read material and do self-check quizzes embedded in the e-book.
The self-check quizzes are part of your grade. You must have the textbook.
- Videos from Intro to Programming in Java from Udacity
- You will need to bring a wireless laptop (running OSX, Windows, or some version of UNIX) to all classes, labs, and exams.
- Homework and exam submission
- You will use Codecheck to test your programs and generate reports.
You will submit the reports from Codecheck in Canvas for your homework and exams.
There will be free tutoring available in the Computer Science Study Lab in MH226 starting the third week of school.
- Midterm Exams (15% per exam)
- Two in-class exams. Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency.
- Final Exam (30%)
- The final must be taken on the scheduled day. But talk to me if you have a true emergency.
- Programming Assignments (25%)
- Two assignments per week: a draft and a final. Schedule your time well to protect yourself against unexpected problems.
Late work is not accepted, and there is no extra credit or makeup work.
All homework is due at 1:00 AM the morning of each class meeting,
but I will give you a grace period and accept assignments until 6:00 AM to compensate for Internet problems.
Please do not ask for an additional extension because your Internet went down at 5:58. The assignment was due hours earlier.
Assignments submitted after 1:00 am are marked late by Canvas, but if you are able to submit, you will receive full credit.
I drop the lowest homework grade for both the draft and the final.
This allows everyone to mess up on one of each type of assignment.
Also note that I do not accept assignments by email.
We only grade what is uploaded to Canvas by the end of the grace period.
- Participation (5%)
- You will get the most out of class if you are present, on time, and prepared at every class and lab session.
Participation is 5% of your grade. You can earn participation points during class via online polls in Piazza.
You also earn a point for every Piazza post you make outside of class.
You will need to post regularly either asking or answering questions in order to acquire enough points for full credit.
You also get participation points for attending Supplemental Instruction session.
(See the section on Supplemental Instruction for more information.)
Your participation points are calculated out of a maximum of 175. You can not get more than 100%.
You can check your total at any time by clicking on the statistics tab in Piazza.
NOTE: Posts need to add to the discussion. Do not wait until the last few weeks of class and
then make half a dozen useless posts at a time trying to get points. I will deduct points for this inappropriate behavior.
- Self-Check Quizzes (5%)
- The self-check quizzes for the day's reading from the eText are due the morning of each class meeting at 1:00AM,
but I will give you a grace period and accept assignments until 6:00 AM. These are based on the assigned reading for the class.
No quiz scores will be dropped.
- Labs (5%)
- The lab counts as 5% of your total grade. You are already enrolled in a lab section. Please be sure to attend.
The labs are designed to reinforce what you learn in class. You have to pass the lab to pass the class.
To pass the lab, you need to attend 11 of the 14 sessions. In other words, you can only miss 3 labs and still pass this class.
Please do not use up your 3 allowed misses in the first few weeks of class on non-emergencies.
I have occasionally had to fail a students in CS46A who missed a fourth lab due to illness but who had already used up the allowed misses
for non-urgent matters. If you miss more than three labs you are not adequately prepared for CS46B.
- Time Spent
- Success in this course is based on the expectation that students will spend, for each unit of credit,
a minimum of 45 hours over the length of the course (normally three hours per unit per week) for instruction,
preparation/studying, or course related activities, including but not limited to reading, labs, and assignments.
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.
Many students need to spend much more time.
- A self-check quiz before each class meeting except for exams, that is: twice a week
- Quizzes are embedded in your e-textbook
- Quizzes are untimed and you may repeat a quiz as many times as you wish
- You can view your points for the quizzes in Vital Source. Scores will not appear in Canvas until the end of the semester
- Quizzes are due at 1:00AM, but I will allow you to submit up until 6:00AM to compensate for possible Internet problems
- 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
- Several times per class, there will be a “clicker” question to record your active participation
- Real clickers are hardware devices that cost money. We use Piazza instead.
- You will log in to Piazza. You may be asked to answer a question or record that you participated
- You get a point for each answer (even if it's wrong or you were unable to do the activity correctly). The point is for being in class and participating
We are fortunate this semester to have Supplemental Instruction made available to us through Peer Connections. Supplemental Instruction is an academic assistance program which provides peer-led group study sessions to assist students in traditionally difficult courses. And it is free! Students who attended last semester found it very helpful.
The sessions are led by a SI leader who has already mastered the course material and has been trained to facilitate group sessions where students can meet to improve their understanding of course material, review and discuss important concepts, develop study strategies and prepare for exams. SI is for everyone, and open to all students enrolled in this class. Attendance at SI sessions is free and voluntary. Students, who attend SI sessions weekly, typically earn higher exam and final course grades than students who do not participate in SI. Please bring your lecture notes, computers, and questions with you.
SI study sessions meeting times will be determined by taking a poll of interested students and finding the most convenient time. The location will be determined once the time has been set.
Note that these sessions are not tutorial sessions for doing homework. They are sessions to help you understand the material. Please do not ask the S.I. leaders how to do a homework problem. But if the homework requires a loop, it would be an excellent idea to ask them how to write a loop.
You earn 2 participation points for each session you attend.
CS46A/B Lab Rules
You can read the Lab rules here (http://cs46labs.bitbucket.io/lab-rules.html)
Your grade for the course is based on each of the exams, the final, the total
homework, the labs, the quizzes, and participation. Grades are calculated by weighting the scores as defined above.
The grades WILL NOT be curved.
This class is graded with a traditional letter grade. See the scale below. I do not round grades.
89.9 is a B+ NOT an A-.
You must earn at least a C- (70) to be eligible to take CS/SE 46B
Note that “All students have the right, within a reasonable time, to know their academic scores, to review their grade-dependent work, and to be provided with explanations for the determination of their course grades.” See University Policy F13-1 at http://www.sjsu.edu/senate/docs/F13-1.pdf for more details."
- Please arrive on time for class meetings. If you do come in late, please take a seat quietly.
- This is a huge room with a lot of people. I would appreciate it if you would refrain from talking to your neighbors while I am talking or while a classmate is trying to talk to me. A lot of people making tiny noises makes it very hard for me to hear.
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. This means if you find code on Stackoverflow or another web site,
you need to give the URL where you found the code in a comment at the top of your class so that I can look at it if necessary.
If you copy code from Piazza, you need to give the post number in a comment at the top of your code.
You can find the post number by putting your cursor on the message in the left menu and clicking the down arrow. Do this even if you make a few changes to the code.
You may copy from the textbook, the labs, or anything we do in class without attribution. For homework and exams, you may not copy anything from any other student at all,
and you may not collaboratively produce results in pairs or teams. Your work must be entirely your own.
It is never okay to give your completed code to another student before the due date.
If the other person submits your work, I have to give you both a 0. Please do not risk this by giving your code to your friends.
A first incident of cheating will result in a 0 on that assignment or exam. A second incident will result in a F for the class.
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 trade-offs involved in design choices
(k) An ability to apply design and development principles in the construction of software systems of varying complexity
Add Policy: If you wish to add, please talk to the instructor.
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
transcribe lectures or copy course materials for the use of yourself
and other students registered in this course. You may not sell or give
transcriptions of lectures or copies of course materials to
others without the prior written consent of the instructor.
University Policies: Office of Graduate and Undergraduate Programs hosts university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc." You may find all syllabus related University Policies and resources information listed on GUP's Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/
Tentative Schedule for CS46A
Tentative Exam dates: March 3 and April 28
Final: Tuesday, May 19, 2020 1215 - 1430 (regular classroom)
Last Updated Mar 8, 2022