CS46A Introduction to Programming—Online Section

Spring 2014 | Cay S. Horstmann | Department of Computer Science | San Jose State University


Due Dates


Lab Webex Times and Meeting Numbers

Go to http://webex.sjsu.edu, log in with your SJSU ID, and search for CS46A or enter the meeting number.

Join the Webex session if you have a question or if you are ready to show your work.

Online Tools

In this course, you will use several online tools. Links are on top of this page (the red rectangles). Here is what to use when:

  1. For questions, news, and discussions, we use Piazza. Piazza is an excellent discussion group that can handle a large number of users and topics. If you have any question about the course (homeworks, videos, etc.), ask it on Piazza. Piazza is a public forum where students can help each other. You'll get rewarded for asking questions or answering them. I'll pitch in too if nobody has the answer, but in previous semesters I have found to my amazement and delight that this doesn't happen very often.
  2. For submitting work and for grades, we use Canvas. Canvas is a private system that keeps your grades secure from prying eyes, and that gives you a proof of timely submission for your assignments. (In some courses, Canvas is used for providing the course materials as well, but this course is an “open” course—everyone can look at the materials without a login.)
  3. Video lectures are at Udacity. Originally, this online course started as a “massively open online course” or MOOC with Udacity, but they decided that there is more money to be made with corporate training than higher education. However, the videos and exercises are still there, and they have a nice system for showing them in order and remembering the place where you took a break. You will watch these videos instead of going to a classroom.
  4. This website has a schedule with a detail plan of what you should do each week. Be sure to check it at the beginning of every week!
  5. Office hours and class discussions are through Webex. If you are a local student, you can also visit me in my office (MacQuarrie Hall 416) during office hours.
  6. Feel free to email me with private questions and concerns. My email is Cay.Horstmann@sjsu.edu. But for questions about the course material or homework, please use Piazza, not email. You'll earn a point for asking a question, and you'll earn the gratitude of your classmates for asking what's on their mind too.

Why Should I Take This Course?

You want to learn to code. You really do. Once you know how to code, you can automate mundane digital tasks in your life. And even if you are lucky enough to live a life that is free of mundane digital tasks, you want to know what can and what cannot be coded.

Imagine you were the president of this country, and your advisors told you that it would be a piece of cake to implement a web site that instantly checked that any applicant was who they claimed they were, how much money they made, and what health insurance subsidies they could claim. After having taken this course, you'd know to ask some questions. Browsing plans, sure. Computing subsidies in real time? That's really hard. Quite probably, some people in Washington are kicking themselves this very moment that they didn't take a programming course when they had a chance.

This course teaches you the basics of programming and the way that computer scientists think. If you so choose, it launches you towards a career in computer science. If you are a student in another discipline, you will be able to put what you learned to practical use in your field. What's not to like? Go take this course.

Ok, it's not that simple. There is a catch. Learning how to code is hard work. But the magic of this particular offering is that the hard work is reduced to that, just hard work. When set up the right way, programming is just practice, like learning to play the piano or propelling an orange ball into a circle with attached webbing.

And that's how the course is set up. You'll listen to me for a couple of minutes. Then you'll put to work what you just heard. You may be confused, but that's ok. You'll try out an exercise. If you get it, move on. If not, check out how I did it. Feel free to listen again if you are still unsure. Ask a question in the discussion group, or just check out what others have asked. Ultimately, the exercises are what counts. Give them your best, and you will learn. Just like the folks who keep putting their fingers onto those white and black keys, or who keep propelling that orange spheroid. Practice does make perfect.

Most people get quite good at programming with practice. Take this course and be one of them.