Computer Science I – Honors

CSCE 155H

Fall 2018

Syllabus

Details on the policies, grading, expectations, etc. for this course can be found in the course syllabus.

Venue

CSCE 155H

  • TR 11:00AM – 12:15PM, Avery 119
  • Lab: W 2:30PM – 3:45PM, Avery 20

Instructor

Dr. Chris Bourke
cbourke@cse.unl.edu
Avery 363
Office Hours: TBD

Teaching Assistants

CSCE 155H
  • Xia Yi (GTA)
    Office Hours: TR 9:30AM – 10:30AM
  • Alex Richardson (UTA)
    Office Hours: TBD
  • Dominic Giandinoto (UTA)
    Office Hours: TBD
Week Dates Topics – 155H Lab Required Reading Notes
1 August 20 – 24
  • T: Course Introduction, Getting Started
  • R: C/Java Basics
Lab 01: Introduction
2 August 27 – 31
  • T: C/Java Basics
  • R: Conditionals
Lab 02: Data Types
3 September 3 – 7
  • T: Conditionals
  • R: Loops
Lab 03: Conditionals Assignment 1 due
4 September 10 – 14
  • T: Functions & Modularity
  • R: Pointers/Pass By Reference
Lab 04: Loops
  • CS1: Chapters 5–6, 18–19, 29–30
5 September 17 – 21
  • T: Error Handling in C
  • R: Exceptions in Java
Lab 05: Functions/Methods
6 September 24 – 28
  • T: Hack Session
  • R: Arrays
Lab 06: Functions, Enums
  • CS1 Chapters 7, 20, 31
Assignment 2 due
7 October 1 – 5
  • T: Arrays
  • R: Strings
Lab 07: Arrays & Dynamic Memory
8 October 8 – 12
  • T: Midterm Review
  • R: Midterm
Lab 08: Debugging Assignment 3 due
9 October 15 – 19
  • T: No Class (Fall Break)
  • R: String Processing
Lab 09: Strings
  • CS1: Chapters 8, 21, 32
10 October 22 – 26
  • T: File I/O
  • R: Encapsulation: Structures
Lab 10: File I/O
  • CS1: Chapters 9, 22, 33
11 October 29 – November 2
  • T: Encapsulation: Objects
  • R: Recursion
Lab 11: Structures/Objects
  • CS1: Chapters 10, 23, 34
Assignment 4 due
12 November 5 – 9
  • T: Searching: Linear Search, Binary Search
  • R: Sorting: Selection Sort, Quick Sort
Lab 12: Recursion
  • CS1: Chapters 11, 24, 35 (recursion)
  • CS1: Chapters 12, 25, 36 (searching/sorting)
13 November 12 – 16
  • T: Sorting in Practice
  • R: (Pad)
Lab 13: Searching & Sorting
Assignment 5 due
14 November 19 – 23
  • T: (GUI)
  • R: No Class
15 November 26 – 30
  • T: (GUI)
  • R: (Databases)
Lab 14: GUI
16 December 3 – 7
  • T: (Databases)
  • R: Review
Lab 15: Databases Dead Week
Assignment 6 due
Assignment 7 (bonus) due
17 December 10 – 14 Final Exam: 155H: Wednesday, December 12th, 3:30PM – 5:30PM Finals Week

Course Resources

Software

  • Eclipse
  • GitHub
  • Putty – a free SSH client to connect to CSE
  • FileZilla – a free FTP client to transfer files
  • Notepad++ – a free text editor with code markup
  • Cygwin – get a linux feel and tools for compiling C in windows
  • Code::Blocks – an all-in-one, extensible IDE for C/C++

Lecture Notes

Course Introduction
Language Basics
Conditionals
Loops
Functions, Methods, Modularity
Error Handling, Enumerated Types
Arrays & Dynamic Memory
Strings
File Processing
Encapsulation: Objects, Structures
Recursion
Searching & Sorting
GUI & Event Driven Programming
Intro to Databases

Computer Science I – C

(CSCE 155E, CSCE 155H, RAIK 183H)

Lab 01 – Introduction, Gettings Started

An introduction to the lab environment and tools needed to develop, compile, and execute a program. Includes step-by-step instructions for checking out starter code from GitHub.

Lab 02 – Data Types

An introduction to variables and primitive data types supported by the language. Basic variable usage and mathematical expressions.

Lab 03 – Conditionals

An introduction to conditional statements as well as logical operators and logical expressions.

Lab 04 – Loops

An introduction to basic loop control structures including for and while loops. Applications of loops to solve problems.

Lab 05 – Functions

An introduction to functions, procedural abstraction, and modularity. Defining and using functions to solve problems. Functions as code reuse.

Lab 06 – Functions, Passing By Reference, and Enumerated Types

Introduction to using pass-by-reference variables in functions to communicate values. Code organization and modularity. Using error codes to achieve error handling and enumerated types to disambiugate code.

Lab 07 – Arrays & Dynamic Memory

An introduction to arrays, in particular dynamically allocated arrays. How to do proper memory management and the consequences of memory leaks. Basic usage of arrays, passing arrays to return arrays from functions.

Lab 08 – Debugging

An introduction to proper debugging techniques. Using debugging tools to set breakpoints and step through a program.

Lab 09 – Strings

An introduction to using and manipulating string data types. Using the standard string library functions to process strings.

Lab 10 – File Processing

An introduction files and file input/output. Processing files in both binary and text formats. Basic data formatting in text files including XML.

Lab 11 – Encapsulation & Structures

An introduction to encapsulation and creating structures. Advantages of grouping data together into one unit. Declaring and using structures in a program to solve problems.

Lab 12 – Recursion

An introduction to recursion and recursive functions. Pitfalls to using recursion and alternatives.

Lab 13 – Searching & Sorting

An introduction to basic searching and sorting algorithms and techniques. How to leverage built-in functions and libraries to search and sort. How to generalize and configure such algorithms to operate on different types of data; using comparators.

Lab 14 – Graphical User Interfaces & Event-Based Programming

An introduction to graphical user interface and event-based programming techniques. Creating and using basic widgets, user interface layout, enabling functionality by registering callbacks.

Lab 15 – Introduction to Database Connectivity

An introduction to database structures and connectivity. Data integrity issues. Inserting and retrieving data from a database through an API.

Computer Science I – Java

(CSCE 155H, RAIK 183H)

Lab 01 – Introduction, Gettings Started

An introduction to the lab environment and tools needed to develop, compile, and execute a program. Includes step-by-step instructions for checking out starter code from GitHub via Eclipse.

Lab 02 – Data Types

An introduction to variables and primitive data types supported by the language. Basic variable usage and mathematical expressions.

Lab 03 – Conditionals

An introduction to conditional statements as well as logical operators and logical expressions.

Lab 04 – Loops

An introduction to basic loop control structures including for and while loops. Applications of loops to solve problems.

Lab 05 – Methods

An introduction to methods, procedural abstraction, and modularity. Defining and using functions to solve problems. Methods as code reuse.

Lab 06 – Methods, Error Handling and Enumerated Types

Introduction to using exceptions for error handling, code organization and modularity. Using enumerated types to disambiugate code.

Lab 07 – Arrays & Dynamic Memory

An introduction to arrays, in particular dynamically allocated arrays. How to do proper memory management and the consequences of memory leaks. Basic usage of arrays, passing arrays to return arrays from methods.

Lab 08 – Debugging

An introduction to proper debugging techniques. Using debugging tools to set breakpoints and step through a program.

Lab 09 – Strings

An introduction to using and manipulating string data types. Using the standard string library functions to process strings.

Lab 10 – File Processing

An introduction files and file input/output. Processing files in both binary and text formats. Basic data formatting in text files including XML.

Lab 11 – Encapsulation & Objects

An introduction to encapsulation and creating objects. Advantages of grouping data together into one unit. Declaring and using objects in a program to solve problems.

Lab 12 – Recursion

An introduction to recursion and recursive functions. Pitfalls to using recursion and alternatives.

Lab 13 – Searching & Sorting

An introduction to basic searching and sorting algorithms and techniques. How to leverage built-in methods and libraries to search and sort. How to generalize and configure such algorithms to operate on different types of data; using comparators.

Lab 14 – Graphical User Interfaces & Event-Based Programming

An introduction to graphical user interface and event-based programming techniques. Creating and using basic widgets, user interface layout, enabling functionality by registering callbacks.

Lab 15 – Introduction to Database Connectivity

An introduction to database structures and connectivity. Data integrity issues. Inserting and retrieving data from a database through an API.