Computer Science I – Honors

CSCE 155H & RAIK 183H

Fall 2017

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
  • Hack Session: TBD

RAIK 183H

  • MWF 9:30 – 11:20AM Kauffman 110
  • Hack Session: TBD

Instructor

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

Teaching Assistants

TBD

Undergraduate Teaching Assisstants

  • TBD
Week Dates Topics – 155H Topics – 183H Lab Required Reading Notes
1 August 21 – 25
  • T: Course Introduction, Getting Started
  • R: (C/Java Basics)
  • M: Course Introduction, Getting Started
  • W: Lab 01
  • F: (C/Java Basics)
Lab 01: Introduction
2 August 28 – September 1st
  • T: (C/Java Basics)
  • R: (Conditionals)
  • M: (C/Java Basics)
  • W: Lab 02
  • F: (Conditionals)
Lab 02: Data Types
  • Computer Science I: Chapters 3, 16, 27
3 September 4 – 8
  • T: (Conditionals)
  • R: (Loops)
  • M: (Conditionals)
  • W: Lab 03
  • F: (Loops)
Lab 03: Conditionals
  • Computer Science I: Chapters 4, 17, 28
Assignment 1 due
4 September 11 – 15
  • T: (Loops)
  • R: (Functions/Methods)
  • M: (Loops)
  • W: Lab 04
  • F: (Functions/Methods)
Lab 04: Loops
5 September 18 – 22
  • T: (Pointers, Pass-by-reference, Error Handling)
  • R: (Exceptions)
  • M: (Pointers, Pass-by-reference, Error Handling)
  • W: Lab 05
  • F: (Exceptions)
Lab 05: Functions/Methods
6 September 25 – 29
  • T: (Arrays)
  • R: (Arrays)
  • M: (Arrays)
  • W: Lab 06
  • F: (Arrays)
Lab 06: Functions, Enums
Assignment 2 due
7 October 2 – 6
  • T: (Arrays)
  • R: (Strings)
  • M: (Arrays)
  • W: Lab 07
  • F: (Strings)
Lab 07: Arrays & Dynamic Memory
8 October 9 – 13
  • T: Midterm Review
  • R: Midterm
  • M: Midterm Review
  • W: Lab 08
  • F: Midterm
Lab 08: Debugging
Assignment 3 due
9 October 16 – 20
  • T: No Class (Fall Break)
  • R: (String Processing, File I/O)
  • M: No Class (Fall Break)
  • W: Lab 09
  • F: (String Processing, File I/O)
Lab 09: Strings
10 October 23 – 27
  • T: (File I/O)
  • R: (Encapsulation: Structures)
  • M: (File I/O)
  • W: Lab 10
  • F: (Encapsulation: Structures)
Lab 10: File I/O
11 October 30 – November 3
  • T: (Encapsulation: Objects)
  • R: (Recursion)
  • M: (Encapsulation: Objects)
  • W: Lab 11
  • F: (Recursion)
Lab 11: Structures/Objects
Assignment 4 due
12 November 6 – 10
  • T: (Searching)
  • R: (Sorting)
  • M: (Searching)
  • W: Lab 12
  • F: (Sorting)
Lab 12: Recursion
13 November 13 – 17
  • T: (Sorting)
  • R: (Pad)
  • M: (Sorting)
  • W: Lab 13
  • F: (Pad)
Lab 13: Searching & Sorting
Assignment 5 due
14 November 20 – 24
  • T: (GUI)
  • R: No Class
  • M: (GUI)
  • W: No Class
  • F: No Class
15 November 27 – December 1
  • T: (GUI)
  • R: (Databases)
  • M: (GUI)
  • W: Lab 14
  • F: (Databases)
Lab 14: GUI
16 December 4 – 8
  • T: (Databases)
  • R: Review
  • M: (Databases)
  • W: Lab 15
  • F: Review
Lab 15: Databases Dead Week
Assignment 6 due
Assignment 7 (bonus) due
17 December 12 – 16 Final Exam: 155H: Monday, December 11; 3:30 – 5:30PM Final Exam: 183H: Tuesday, December 12; 11:00AM – 12 Noon 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.