Honors Introduction to Computer Science I

CS181A Fall 2017

Instructor: Antonio R. Nicolosi
Office hours: Wednesdays & Thursdays 1:00–3:00pm, 317 North

Course Assistants:
Justin Barish
Christopher Hittner
Mark Knapp

Class Meetings:


Course Description

This is a fast-track introductory course in computer science using the Java programming language. Experience with Java is assumed (though most of the main features of the language will be reviewed in class), as is considerable prior exposure to computer programming. In particular, you should be familiar with the following concepts: variables, arithmetic and Boolean operators, the assignment statement, (nested) if–else statements, (nested) loops, basic I/O.

Topics to be covered include: basic facts about computer systems; binary arithmetic; data representation; essential features of Java; elements of object-oriented programming in Java (encapsulation, polymorphism, inheritance); exceptions; GUI/event-driven programming; the stack and queue abstract data type; recursion; searching and sorting; binary trees.

Recommended Readings

Work Load Breakdown

Academic Integrity

Weekly Topics

  1. Intro: Computer architecture overview. Machine programs: Instructions + Data.
    Computer representation of numerical data: Unsigned integers. Binary, octal, and hexadecimal number systems. Binary arithmetic.
    Working via the command line: A brief tour. (Windows setup instructions.)
  2. Computer representation of numerical data: Signed integers. Two's complement, sign-and-magnitudes, and bias/excess notations. Signed and unsigned overflow.
    The boolean primitive type. Review of Boolean operators. The bitwise operators. Operators precedence and associativity.
    Computer representation of non-numerical data: Characters and strings. Character encodings: ASCII and Unicode.
  3. Computer representation of numerical data: real numbers. Binary periodic fractional values. Java and the (reduced) IEEE 754 floating-point standard.
    Command-line arguments and simple I/O via the Java API.

Homework & Programming Assignment

(Coding conventions for the programming assignments.)
(Java source for code discussed in class/lab.)

Midterm & Final Exams

Misc On-line Resources


Credits: Antonio Nicolosi, Dan Duchamp, David Naumann
Permission hereby granted for anyone to copy, modify, and redistribute any lecture note material from this class that belongs to the instructor.
Valid HTML 4.01! Valid CSS!