Computer Science 121: Introduction to Problem Solving with Computers (A Java Language Course).

What is CS 121 about?

121 is intended to teach you how to program in Java, one of the most popular modern computer languages. Java brings a discipline to programming, called the object-oriented paradigm, and the course teaches how to use this paradigm as a framework for programming.

Note that 121 teaches you how to program in Java. Broadly, while the class is intended for well-prepared students (good general computer skills, decent basic math skills), no previous programming experience is assumed. Still, the course is the first required class for the UMass computer science major; it is also required of Informatics majors, electrical engineering majors, and mathematics majors at UMass-Amherst. In addition to basic programming constructs such as looping, conditions, arrays, file handling, and methods (Java subprograms), much attention is given to the Java object model as well as to Java's event model and its relation to graphical user interfaces.

How can I register for CS121?

If you are not able to enroll yourself, you will need to request an override via the online form. After you submit your override request you will be added to the waitlist and if we are able to offer you a seat we will contact you via email. To read more about the override process and for the online form please visit this link:

How does the course work?

CS121 uses both Moodle and the OWL system. The course website is on Moodle: Moodle has a course forum, as well as code and other resources covered in weekly lectures. The textbook, homework, and programming projects provided by the OWL system, accessed via Moodle or via OWL directly.

The course is based on an interactive textbook called iJava. The text runs as part of the OWL learning management system. OWL is separate from both Moodle and Blackboard, Learning Management Systems. (Almost) all work is accessible through iJava/OWL. An abbreviated version of the course lectures are available from the course website and from the online text.

Where does the class meet?

Lectures are given twice per week. Each lecture is recorded and made available the next day. Discussion sections are held once per week.

Do I have to attend class?

You will be assigned to a discussion section and attendance is mandatory. You will work on a Java code project in discussion section.

You do not have to attend lecture. Some caveats though: if you have never programmed before, come to lectures. If you're a freshman, coming to lectures is a very good idea even if you have programming experience. Also, the course gets more difficult, more unfamiliar, more conceptually challenging. So: if you come to class infrequently early on, you should nevertheless reconsider that decision beginning at the middle of the term.

How hard is CS 121?

CS 121 is actually quite challenging. It has an R2 designation (a general designation at UMass for analytical reasoning courses), and it's about as hard as any R2 on campus.

Don't take this course lightly. There are a great many small assignments (almost 400 automatically graded homework problems) so it's critical to keep up. Note: Something is due - a homework set, a project, roughly, every 3 days or so. So to succeed in 121 you've got to stay on top of the assigned material.

Do I need a computer to do the class?

You will need access to a desktop or laptop computer for this class. Chromebook computers are not recommended.

Are there special software tools that I need for this class?

You'll need the Java development kit (JDK) as well as a development tool that contains project management and a debugger. We use jGrasp as a development environment as it is easy to install and learn. Students may choose other tools, such as IntelliJ and Eclipse. Note that we will provide support for jGrasp but no other IDE. While the above software is free, there is a fee for an access code to the OWL/iJava material.

Important Course Layout Information

The course is almost entirely framed within the UMass-developed OWL system (OWL, for Online Web Learning). The major components of the course are textbook assignments, homework assignments, and programming projects. There are two midterms and a final exam. You must get a passing grade on the final to pass the course.

Programming Projects

The programming projects are absolutely central to the course. Indeed, the purpose of the class is to help you become someone who can really do projects (that is, become a software developer). In addition to the eight standard ones in the class there will also be several extra credit projects. These are especially important to try if you plan to take a Java course in data structures. Your code is graded not just on whether you got the right answer, but also on the organization of your code, and on your code's readability, including commenting. If you get a kick out of coding, and if you do well at it, then maybe you are, indeed, a software developer in the making. It goes without saying that the class projects become more complex, but more interesting, as the class progresses.

What is COMPSCI 197B?

COMPSCI 197B is a one credit course consisting of approximately five more challenging programming projects. These projects are designed to prepare students for a data structures course. You must be enrolled in COMPSCI 121 to enroll in 197B. The first project is typically assigned around week five of the semester.