About
Announcements
Modules
Coursework
FAQ
Java API
C CPI
|
- What is CS-2113 all about?
CS-2113 has several objectives. First, we need to
cover enough of the C programming language so that you
are able to do assignments in CS-2461, CS-3410, and CS-3411
(all of which are required courses in the B.S. program).
Second, CS-1111 and CS-1112 don't have enough time to cover
all aspects of Java. By the end of CS-2113, you will be
very comfortable with most everything in Java, including
the murky details of objects and inner classes.
Third, this course shows you how applications are
developed, both at the front-end (GUI's, about which
you already know something) and at the back-end (websites).
Finally, CS-2113 will strengthen your basic programming
skills in preparation for later CS courses.
- Who should take this course?
The course is required of all students in the BA, BS Computer
Science programs, the Systems Engineering program,
and the CS minor.
- I haven't taken CS-2113. Can I take this course?
If all you've done is CS-1111, then no. If you've taken the equivalent
of CS-1112 elsewhere, talk to me about it - you might be able
to take the course.
- I've taken CS-1112, but in another language. Can I take this course?
This is a tough one. Generally, if you are comfortable with
programming, you can pick up Java quickly. Indeed, while the
Java students are coping with C in the first few weeks, you
will have the time to get up to speed with Java.
However, if you struggled with your C or C++ courses, then
CS-2113 might be exceptionally challenging. Stop by and
discuss this with me.
- Is this a programming-intensive course?
Moderately so, probably a bit more than CS-1112.
- Will I be able to work at home?
Absolutely. Both the C and Java parts can be done at home
on Windows, Linux or Mac platforms. You will be able to
access your Unix account via a browser. However, you can
also develop on your own laptop. Most Linux installations
already come with gcc (for C); installing Java is easy.
Mac-OSX comes with Java installed but you'll need to install C,
which you can do by installing X-Code (try the LLVM
compiler called clang). Windows needs more work: there
are several options:
- Install a virtual machine with Linux, as
shown here. Then, do
everything inside Linux.
- Install Cygwin and then Java. Cygwin already has C.
- What's covered in the labs? Is attendance mandatory?
The labs will cover some additional material from class,
especially in the first half of the semester. It's also
an opportunity to clarify what's expected of you in
particular assignments. We will take attendance.
Generally, if you are near the top of the class, we will
not worry about attendance. However, all others are expected
to attend and participate in all labs.
- What's the difference between a module
exercise and an exercise with a due date?
The module exercises are embedded in the course material on
this site that is organized into modules. For example,
take a look at this
module for C, and scroll down to see exercises embedded
in the text. We will start working
and try and complete on many of these in class.
Those that we can't
should be done the same day preferably, and will be due in
Blackboard as soon as we start the next module. For example,
if we've started Module 3 this week, that means you are expected to
submit Module 2 exercise by the end of the week.
Other exercises,
like assignments, are to be submitted independently.
Both module exercises and other exercises/assignments
are to be submitted using
our submission procedure.
- So, are in-class exercises to be submitted?
Correct. These are to be uploaded as a zip file (one zip
per module) in Blackboard.
- Should I worry about which version of Java (or C) I'm using?
For C, we will use ANSI-C-89, the most common form of C. Please do
NOT use any of the more advanced features because we will compile
assuming C-89.
For Java, most of what we cover will be somewhere between Java 1.2
and 1.5 (also referred to as Java 2 or Java 5). Java 1.8 (Java 8)
introduces significant new language features that we will not
focus on but you can use a Java 1.8 compiler.
- Why are we doing this in Unix? And why can't I use an
IDE like Eclipse?
Working at the command-line in Unix is a core CS experience
and skill, preparatory to working on operating systems,
backend servers, and embedded systems. While IDEs will be useful
later in your professional life, at this moment, some of their
features, such as autocompletion and colorizing, inhibit the
learning of good coding skills. Plain editors on the other hand
help you develop good reading and syntactic skill.
|