Brooklyn College
Dept of Computer & Information Science

CISC 1115: Introduction to Programming Using Java

Bulletin Description

CISC 1115 Introduction to Programming Using Java 3 hours lecture, 2 hours lab; 4 credits

Algorithms, computers and programs. Writing, debugging, and testing programs. Loops and conditional control structures. Method definition and parameter passing. Arrays, ArrayLists, and Strings. Sorting, searching and other basic algorithms. Input and output. Programming applications selected from various disciplines. History and basic concepts of computer science.
Prerequisite: none
Contact hours: 5

Course Objectives

By the end of this course, students should be able to:

  1. Understand the concept of a program (i.e., a computer following a series of instructions)
  2. Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate
  3. Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
  4. Write a function to perform a subtask and use the function as part of a larger program
  5. Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
  6. Trace the execution of a program and predict the results of the execution
  7. Write an algorithm for a simple task

Faculty & Final Exam Dates

Name Section CUNYfirst code Time Days Room
Arnow, David MY12 25368 12:25 PM- 2:30 PM MW IA-214
Ziegler, Chaim MY2 25369 2:40 PM- 4:45 PM MW IA-214
Sokol, Dina MY9 25370 9:30 AM-11:35 AM MW IA-214
Weiss, Gerald MY11 25371 11:00 AM- 1:05 PM MW IA-130
Cogan, Eva TY2 25372 2:40 PM- 4:45 PM TuTh IA-214
Augenstein, Moshe TY8 25373 8:40 AM- 10:45 AM TuTh IA-214
Rudowsky, Ira TY11 25374 Tu 11:00 AM - 12:15 PM
Th 11:00 AM - 1:55 PM
TuTh IA-214
Langsam, Yedidyah TR0 25665 10:10 AM-12:15 PM
TuTh IA-525
Ettinger, Nechama EMY6 25681 6:30 PM- 8:35 PM MW IA-214
Lowenthal, Moshe ETY6 25682 6:30 PM- 8:35 PM TuTh IA-214
Piontnica, Adele STR1 25375 8:50AM - 10:30 AM
Final Exam Day Sections Dec 14 3:30-5:30 PM Evening Sections Dec 14 6:00-8:00 PM

Course Syllabus
  (A) Basics
	(1) Preliminaries
		A basic model of actual computer systems and the internet
		Computer terms
		History of computing
		Building software: programming languages, compilers, testing
		Programmers and users
	(2) Hello, World
		Simple one method (main) programs
		Standard output
		String literals
(B) Arithmetic Calculations
	(1) Numbers
		Output (print/println) of, literals of, declarations of variables and associated operations of the int and double data types
		Declaration initialization, final variables (constants)
		Assignment operators, exchange (swap) algorithm, increment, and decrement
		Distinction between integer and double arithmetic, divisibility, parity
		Expressions, precedence, mixed arithmetic and casting
	(2) Input and Output in Programs
		Input using Scanner, methods: nextInt, nextDouble;
		The import statement
		Formatted output (printf)
(C) Other Types: Strings and Logical
	(1) Strings
		Output of, literals, declarations, and associated operations of String and their use (concat, length, substring (both forms), indexOf/lastIndexOf (both forms), trim, toUpperCase, toLowerCase, charAt, compareTo, equals)
		Primitive vs Reference [Object] types: operator vs methods
		The char data type
		Input using Scanner, methods: next, nextLine;
	(2) Logical
		The boolean type; declaring boolean variables
		Relational operators
		Assigning to boolean variables; flags
		Logical operators
		The conditional operator
		Range checking
(D) Methods
	(1) Calling Static Methods
        Invocation, arguments, and return values
        Current time (System.currentTimeMillis)
        Strings to ints/doubles: Integer.parseInt, etc.
        The Math class and its methods (sqrt, random)
	(2) Java API Documentation (System, Math, Scanner, String, PrintStream)
	(3) Static Method Definition
		Parameter declaration, return type, the return statement
		Method scope
		void methods
		Predicate methods
	(4) Overloading Methods; signature and prototype
(E) Control
	(1) Branching
        Compound statements
        if, if—else
        Cascading if—else
        Nested if, if—else
	(2) Loops
        Counting loops: for
        Testing loops: while
        Loop body logic: selection, counting, accumulation, extremes, adjacency logic
        Alternate testing loops: do—while
	(3) Input Loops
        Headers and counting loops (for)
        Sentinel (aka "trailer") loops (while)
        End of data loops (while and hasNext, hasNextInt, hasNextDouble)
	(4) Nested Loops
(F) Arrays
	(1) Basics:
        Declaration of array reference variables
        Creation and initialization of arrays
        Array access
	(2) Traversals:
        Sequential Processing
        Assignment, selection, counting, accumulation, extremes, adjacency logic
	(3) Array-array operations (copying, comparing, arithmetic element-to-element ops)
	(4) Direct indexed array element access
	(5) Searching:
	(6) Sorting: one or more simple quadratic sorts (selection, bubble, ...)
(G) External Files
	(1) File names vs File objects vs File streams
	(2) Scanner constructor with File object
	(3) The importance of close
(H) Using the JAVA API Documentation
	(1) File names vs File objects vs File streams

IDEs and Tutorials


Supplemental Material

Base Systems and Number Conversions
History of Computing
(PDF file, requires Adobe Reader)

Department Chairperson: Yedidyah Langsam
Deputy Chairperson (CLAS): Moshe Augenstein
Deputy Chairperson (SGS): Joseph Thurm

Location: 2109 Ingersoll Hall
Phone: 718.951.5657
Fax: 718.951.4842