CSC 120A Syllabus - Fall 2004

[Course home page]
[Syllabus in PDF format]

Instructor

Nadeem Abdul Hamid
Phone: (706) 368-5632 (office)
Office: SCI 354B
Hours: Mon 11-12:30, 2:30-4 / Tue 9-11, 2:30-4 / Wed 11-12:30 / Thu 9-11 / (or by appt)

Class Meetings

Lectures: Monday/Wednesday/Friday, 10:00 AM - 10:50 AM, Room SCI 107
Labs: Thursday, 2:45 PM - 4:45 PM, Room SCI 228

Course Catalog Description

CSC 120 Principles of Computer Science I (3-2-4)
An introduction to the fundamental principles of computer science. Emphasis on algorithms and computational problem solving, fundamental programming constructs, data representation and storage, language translation, software development methodologies, operating systems, networks, and social contexts. Prerequisites: None.

Overview

This is the first course in the Computer Science (CS) academic program. The fundamental question permeating all of Computer Science is, "What can be (efficiently) automated?" Throughout this course we will introduce the tools and techniques used in the discipline of computing. Aspects of design, theory, and experimentation will be addressed. An overview of central issues and concepts of the field will be offered, including software development, specifications, testing, data organization, machine architecture, history of computing, professional organizations, computer security, and computing ethics.

One of the primary goals of this class will be to learn programming. For this we will be using the Java programming language. As the best way to learn programming is to write programs, much of the student's time will be spent on this particular activity. During lectures, we will also spend a significant amount of time reviewing and studying Java source code examples.

Course Objectives

Keys to Success

Expected Outcomes

The student will meet the objectives with at least 70% success, based on performance on exams, labs, and assignments.

Methods of Instruction

Three lectures and one lab session per week. Please see Materials and Resources below for website and computer hardware and software information.

Materials and Resources

Required Textbooks

Online course website:

Other suggested readings:

Computer hardware and compilers: The machines in Berry's computer labs will have some Java development tools installed on them. We will become familiar with the development software within the first few lab sessions of this course. Students who wish to set up a Java programming environment on their own computers may consider downloading and installing the following:

There are many other options available for Java development environments. Please consult with the instructor if you have any questions in this regard or need help in any way.

Assignments and Grading

Student grades will be determined on a standard 10% grade scale: 90% - 100% earns an A, 80% - 89% earns a B, etc., with the instructor reserving the right to apply +/- grades at his discretion. Grades will be based on the weighted average of the following course work:

Participation (10%) - Attendance and participation in class will be taken into consideration as well as in-class exercises and/or occasional (possibly unannounced) quizzes. (See Attendance Policy.)

Assignments (40%) - There will be a regular series of weekly or biweekly assignments throughout the course. For the most part these will consist of developing computer programs in Java, but they may occasionally be in the form of short written questions reinforcing the material in the lectures, readings, and labs.

Labs (15%) - Each 2-hour laboratory session will involve a variety of problems, including paper-and-pencil exercises, writing computer program code, modifying program code, and/or running code and observing behavior. Some part of the lab exercises, which are to be completed during the assigned lab session, will be turned in for credit.

Exams (35%) - There will be 3 exams, tentatively scheduled as follows:

Tentative Schedule of Classes

(We will spend about 3-4 lectures per chapter, with scattered lectures on broader topics of computer science.)

Date Topics Reading
Aug 23-30 Introduction to computer science and computing hardware and software (Lecture notes, to be posted and/or handed out)
Sep 1-8 Programming and introduction to object-oriented design Chapter 1
Sep 10-17 Java syntax, classes and objects Chapter 2
Sep 20-27 Simple types, arithmetic operators and functions Chapter 3
Sep 29-Oct 6 Control flow (conditionals) Chapter 4, Sections 1-4
Oct 8-18 Abstraction and encapsulation Chapter 4, Sections 5-7
Oct 20-29 More control flow (looping) and file IO Chapter 5
Nov 1-5 OO design and implementation concepts Chapter 6
Nov 8-15 Inheritance and overloading, object IO Chapter 7
Nov 17-22 Error-handling and exceptions Chapter 9
Nov 29-Dec 3 Arrays Chapter 10

Course Policies

[Standard policies]

Instructor's Bibliography

 



Last modified: Wed Nov 24 12:53:30 EST 2004