CSCE 156

Introduction to Computer Science II

Class Syllabus

Spring 2007

 

Instructor

 

Leen-Kiat Soh, Assistant Professor

Room 122E, Avery Hall

Tel:  472-6738

E-mail:  lksoh@cse.unl.edu

Homepage:  http://cse.unl.edu/~lksoh/Classes/CSCE156_Spring07/

Office Hours:  12:00 Noon – 1:30 PM TR (Open Door Policy)

 

Teaching Assistants

 

Apoorva Pandya (Grader)                             Brandon Hauff (Lab Instructor)

Room:  6.5, 501 Building                                  Room: 122A Avery

Tel:  472-3485                                                 Tel:  472-4257

E-mail: apandya@cse.unl.edu                           E-mail: bhauff@cse.unl.edu

Office Hours:    12:30-3:30 PM W                    Office Hours:    9:00-10:30 AM MW                                                   

 

Keith Nickum (Undergraduate Teaching Assistant)

E-mail: knickum@cse.unl.edu

Room: Student Reseource Center, 13 Avery

Office Hours: 3:30-5:00 PM W

 

Drew Ulmer (Undergraduate Teaching Assistant)

E-mail: dulmer@cse.unl.edu

 

Lectures & Labs

 


Lectures

Time:                2:00 PM – 3:15 PM TR

Room:              Avery 19                     

 

Labs

Time:                3:30 PM – 5:20 PM T

Room:              Avery 21 (Section 151)

Avery 20 (Section 152)


 

Catalog Listing

 

CSCE156  Introduction to Computer Science II   (4 cr) Lec 3, lab 1.
Prereq: CSCE 155; MATH 106 or equivalent or appropriate scores on Math Placement Exam.
Description: Laboratories supplement the lecture material and give an opportunity to practice concepts. Different programming languages, the use of data structures, implementation of a three-tier application. Basic programming language paradigms, memory management, pointers and references, language translation and virtual machines, declarations and types, and abstract mechanisms; using, implementing, and introduction to analysis of basic data structures. Linked-lists, stacks, and queues; searching and sorting; databases, table design, SQL queries, and use in applications. ES.

 

Class Objectives

 

  1. Mastery of data structures and operations for lists, stacks, queues, and other data structures.
  2. Familiarity with algorithms for searching and sorting, design and implementation of a 3-tier application including a database backend.  Recursion.
  3. Exposure to programming language paradigms and computational complexity analysis.

 

Topics Covered

 

  1. Memory management, pointers, references, parameter passing.
  2. Implementation of linked lists, including circular and doubly-linked lists.
  3. Array and linked implementations of unsorted and sorted lists, stacks, and queues.
  4. Graphs and trees, in particular binary search trees.
  5. Searching and sorting algorithms.
  6. Brief exposure to computational complexity of algorithms.
  7. Creating and querying a relational database.
  8. Development of 3-tier application, using a relational database backend.
Laboratory Topics Covered:
  1. Introduction to the UNIX operating system and the make utility
  2. SQL Queries
  3. Advanced SQL Queries
  4. Writing and compiling simple programs (in C++)
  5. Classes and operator overloading (in C++)
  6. Pointers and references (in C/C++)
  7. Standard template libraries (in C++)
  8. Debugging (in C++, with gdb)
  9. The Web and scripting languages (HTML and PHP or JSP)
  10. Creating web forms (PHP or JSP)
  11. Creating an interface to a database (PHP or JSP)
  12. Creating an interface to a database (JAVA)
  13. Web security
  14. UML

 

Text Book

 

  1. Malik.  Data Structures Using C++.  Thomson Course Technology. 2003.
  2. Williams and Lane.  Web Database Applications with PHP and MySQL (2nd ed.).  O’Reilly. 2004.

An InterWrite Personal Response System (Required)

Personal Response System and Just-In-Time Quizzes

 

You are required use your own personal response system (PRS) in class for “just-in-time” quizzes and questions.  I anticipate having an average of one or two such questions per lecture depending on in-class discussions and topics. 

 

Homework Assignments

 

There will be 5-6 programming assignments to help you understand some of the basic concepts.  Java programming language must be used for all the assignments. The assignments are due at the class time on the indicated dates. 

You will also be required to hand in an on-line copy.  In addition, you are required to hand in a hardcopy of your code at class time on the due date.  You are expected to write well-documented, modular code.  Programs which do not compile or which do not run will not receive any credit.  Programs that compile and run will be graded as follows:

·        45% Program Correctness,

·        15% Software Design,

·        10% Programming Style,

·        15% Testing, and

·        15% Documentation.

 

Laboratory Assignments

 

The laboratories are designed to supplement the lectures and provide hands-on experiences on topics that need additional attention.  It is a significant part of the course and you are strongly encouraged to fully take advantage of this opportunity.  You are required to read the lab handouts and the reading assignments before coming to the lab.  You are also required to take the on-line pretest prior to coming to each lab. There are 13-14 laboratories altogether.

 

Examinations


We will have two mid-term exams and a final exam. The dates for the tests are listed in the lecture schedule.  There will be no makeup tests. 

 

Final Grade

 

Your final course grade is based on the following: (1) pre-requisite test and in-class quizzes (5%), (2) homework assignments (30%), (3) laboratory assignments (20%), (4) midterms (25%), and (5) final exam (20%).   Final grades in this class will be assigned based on the following scale.  A+ is awarded to a student whose work and understanding of the class prove to be exceptional.

 


A:         94% - 100%

A-:       90% - 93%

B+:       87% - 89%

B:         83% - 86%

B-:       80% - 82%

C+:      77% - 79%

C:         73% - 76%

C-:       70% - 72%

D+:      67% - 69%

D:         63% - 66%

D-:       60% - 62%

F:         below 60%


 

Academic Misconduct

 

Academic dishonesty of any kind will be dealt with in a manner consistent with the CS&E Department's Policy on Academic Integrity (http://cse.unl.edu/undergrads/academic_integrity.php). You are expected to know and abide by this policy.

 

Those who share their code and those who copy other’s code will be penalized in the same way; both parties will be considered to have plagiarized.