CSC 221 - Syllabus

The City College of New York • Grove School of Engineering • Computer Science Department • Course Syllabus

Course number

CSc 22100

Course name

Software Design Laboratory

Credits & hours

3 cr., 3 hr.

Course coordinator

Prof. Akira Kawaguchi

 

Textbook, title, author, and year

  • Java How to Program (early objects), 10/E Paul Deitel & Harvey Deitel, Prentice Hall, 2015 ISBN-10: 0133807800
  • Other supplemental materials: materials related to course work will become available at course website

Specific course information

  • Accelerated introduction to Java programming language and its standard library usage. The course covers coding principles, graphic user interface, event-driven programming, design patterns, security issues, and network and mobile computing capabilities. This course also introduces application development under the Android mobile operating system. A small-scale, team-based application development including software specifications and unit and user testing is required.
  • Prereq.: CSc 21200 and Engle 21007 or Engle 21002 Engle 21003
  • Required course

Specific goals for the course and Relationship to student outcomes

 

1

2

3

4

5

6

a. the student acquires proficiency in Java to implement and test various small-scale applications in Java programming language

R

R

   

R

b. the student acquires an understanding of event-driven programming and ability to clearly explain what it is, why it is important, and how to do it

R

    

R

c. the student is able to list the main principles of software specifications, program design, and unit and user testing

R

    

R

d. the student acquires a foundation understanding of Java-approach for platform independence and ability to use IDE-based compilation and debugging

 

R

   

R

e. the student acquires a foundation understanding of design patterns and ability to use it for project design

  

I

I

I

 

f. the student develops an understanding of legal and security issues related to network-deployed application developments

   

P

 

I

I - introductory-level; R - reinforced-level; P - program-level

Brief list of topics to be covered

Week

Topics

1

Introduction to Computer and Java; Java Applications; Classes, Objects, Methods and Strings

2

Methods and Strings (cont.); Control Statements; Arrays and ArrayLists

3

Classes and Objects: A Deeper Look; Inheritance

4

Polymorphism and Interfaces

5

Exception Handling; Android Application Development Basics

6

GUI Components

7

GUI Components (cont.); Graphics and Java 2D

8

Strings, Characters and Regular Expressions; File, Streams and Object Serialization

9

Java Security; Secure Coding Guidelines

10

Android Programming Tutorial; Generic Collections

11

Generic Collections (cont.); Lambdas and Streams

12

Generic Classes and Methods; Custom Generic Data Structures

13

GUI Components: Part 2; Concurrency

14

Course Wrap-up; Final project demos

 

 

Last Updated: 05/22/2018 20:01