Programming is the art and science of explaining to a computer how to carry out a task. The art is in constructing something that not only works, but is also beautiful - efficient, elegant, and organized. The science comes from developing (and making use of) theory and principles to help programmers create larger, more complex programs.
Programming is at the heart of computer science, but it is not all of computer science. It requires creativity, logical thinking, and problem-solving skills. It can be frustrating when you are trying to track down why your program isn't quite working right, but it is even more rewarding when you finish and can point to your creation.
This course is an introduction to the theory and practice of computer programming, emphasizing techniques of program development in the object-oriented paradigm. The course is taught using Java, a relatively new language which has grown in popularity due its Web-friendly characteristics. Standard topics such as control structures, subroutines, objects, and arrays are covered. Attention will also be given to "how to think like a programmer" - that is, the fundamental logical thinking and problem-solving skills which are independent of the particular language being used.
M 3-4pm, T 1-2pm, W 3-4:30pm, F 9:30-10:30am
|CS Tutor Hours||
M-R 3:00-5pm, M-R 7-10:30pm, Sun 7-10pm, Lansing 310
|Class Hours and Meeting Place||
Lecture MWF 11:15am-12:10pm, Lansing 300
Lab R 8:45am-10:10am, Gulick 208
(general information about the course, including assessment)
(course policies on attendance, collaboration, late/makeup work, and other things)
(syllabus, including links to handouts, assignments, reading material...pretty much everything you want on a daily basis is here)
(solutions to the in-class quizzes)
(the Java programming style/conventions used and expected in this class)
(this tells you what member functions, variables, and constants are available for every class that is part of the standard Java distribution)
(lots of useful information about the Linux systems at HWS)
[4/28] Review information for the final exam has been posted.
[4/12] Some additional event-handling examples have been posted, which illustrate some things not discussed in class (such as enabling/disabling components and determining which mouse button was pressed).
[4/7] Some additional information about running applets and constructing the flower block has been added to lab #10.
[3/31] Information about a sneaky detail involving the detection of barriers has been added to the project #2 page (look for the red-background region). This may or may not be relevant to you, depending on how you are detecting a barrier.
[3/29] Information about the final project has been posted on the syllabus page. Enjoy!
[3/27] There will be no class on Friday, 4/22. I'll be at a conference.
[3/23] Review information for the second midterm has been posted on the syllabus page.
[3/22] Note change in CS tutor hours (see above).
[3/7] Some new hints/details have been added to the project #1 information page - look for the red-background information.
[3/7] Project #2 has been posted on the syllabus page - it won't be officially assigned until after spring break, but feel free to started on it over the break if you can.
[3/4] A small update about using replaceAll has been posted on the Eliza project handout - look for the note in the "Preprocessing" section. This is relevant for the handling of question marks and periods.
[2/28] Lab #7 has been posted on the syllabus page.
[2/23] Tutor hours change: hours will be 7-10pm on Sunday 2/27.
[2/22] A sample solution for the temperature conversion program for lab #3 has been posted on the syllabus page, to illustrate the design that hint #1 was hinting at.
[2/22] Solutions for exam #1 have been posted on the syllabus page.
[2/21] The first individual programming assignment has been posted on the syllabus page. Start early!
[2/21] Lab #6 has been posted on the syllabus page.
[2/15] Lab #5 has been posted on the syllabus page.
[2/13] Some review information for midterm #1 has been posted on the syllabus page.
[2/3] Notes and hints for lab #3:
[2/1] CS tutor office hours change this week - Sunday's office hours will be from 1-4pm.
[1/31] Lab #3 has been posted on the syllabus page.
[1/30] Office hours change this week - Tuesday's office hours will be 1:30-2:30pm, and Wednesday's hours will be 4-5pm.
[1/24] Lab #2 has been posted on the syllabus page - you are strongly encouraged to read through the handout before coming to lab on Thursday.
[1/24] Solutions to the two quizzes so far have been posted (see the link above). Additional solutions will be added as more quizzes occur.
[1/17] The room change for the lab is official - lab will meet in Gulick 208. Note that this is for the lab only; the lecture still meets in Lansing 300.
[1/3] Welcome to CPSC 124! You should take a few minutes to familiarize yourself with the course website, since all important information will be posted here. Check back often for new information.