CSC 1501 Computer Science I

http://www.sju.edu/~ggrevera/csc1501/index.html
George J. Grevera, Ph.D.


contents:
course home
assignments
labs
open labs
professor
reviews
software
syllabus
TA

Course description

This course is an introduction to computers, computer science, and computer programming. No prior knowledge regarding how computers work is assumed. Students will Learn how to write understandable computer programs in Java, a programming language widely used on the Internet. Students will go beyond the routine skills of a computer user and learn the art of programming in some depth. One may then take what is learned and write Java programs for use on the Internet. One class period per week is a required laboratory.

Required textbook

"Absolute Java," 4th edition, Walter Savitch, Addison Wesley, 2009.

Software

  • The computers in the labs already have jGRASP installed for you. The steps below are for those that wish to install jGRASP on their own computers.
    1. A Java JDK is required. (The Java SE is recommended but the larger Java EE is certainly acceptable.) It is likely that one is already installed on your system. To determine if you already have a JDK on Windows, go to start->control panel->Add or Remove Programs and look for a J2SE or JSEE Development Kit. If you have one, you don't need to install another one.
    2. jGRASP is a freely available Java IDE. (The jGRASP exe version is recommended.)
  • Other IDEs such as BlueJ, JBuilder, DrJava, and Ready are acceptable but please speak with me before choosing this route.
  • Software driver for the world's cheapest USB-to-DB9 serial cable that works with the Scribbler.
  • Graphical Scribbler Program Maker (modified for our class)

Course goals and objectives

  • develop a basic understanding of computer systems
  • understand basic program structure
  • develop basic algorithmic problem solving skills
  • become proficient at the Java programming

Prerequisites

  • None

Major topics covered in the course

  • introduction to computers and programming
  • an approach to algorithmic development/problem solving
  • data types and variable declaration; comments
  • arithmetic expressions and statements; input/output
  • boolean expressions; conditional statements and expressions
  • switch statement
  • file input/output
  • repetition: the for loop; the while and do while loops
  • nesting loops
  • strings
  • functions/procedures/methods; variable scope and parameters
  • arrays
  • passing arrays to functions; value vs. reference parameters 2D arrays
  • sorting (bubble sort), searching for elements in sorted and unsorted arrays
  • applets
  • objects; encapsulation

TA

Our excellent TAs will be Ross Creed (rosstcreed at gmail dot com) and Danlin Song (songdanlin at gmail dot com).

Laboratory projects

Please refer to the syllabus for a complete list of laboratory projects.

Assignments

Unless otherwise directed, email me a copy of your code. Also, hand in a printout of your code as well as a printout of sample test runs. Your code will also be graded according to readability as well as correct execution. A grade of 'A' requires correct, readable code as well as sufficient comments and example test runs.

Please refer to the syllabus for a complete list of assignments.

Exam reviews

  • TBD

Valid HTML 4.01!