slanted W3C logo

Day 01 — Introduction

CSE1020E Introduction to Computer Science I

The course lays the conceptual foundation of object-oriented programming. It covers delegation and contracts, encapsulation and API programming, aggregation and the collections framework, inheritance and polymorphism, all from the client's perspective. It also covers language-specific topics like types, control structures, and exception handling. The coverage is done within the framework of the software development process and emphasizes software engineering throughout.

Your Guide

Dr. Burton Ma
Department of Computer Science and Engineering
Room 1012J


Office Hours:
3:30—5:00 pm on Monday, Wednesday, and Thursday.

Course web pages:
CSE1020 (the general course web page)
CSE1020E (Section E specific web page)

Word Games

Word games seem to be very popular...

These games seem simple but beneath the surface lies a great deal of computer science and engineering.

Word Games and Computing Science

What are some of the problems that you need to solve to create games like the ones we just saw?

Problem Relevent Topics in Computing
search dictionary for a word data structures, algorithms, algorithms analysis
find all words in a group of letters algorithms, algorithms analysis
interact with user human-computer interaction
write software software engineering, programming languages

What Will we be Doing in 1020?

In 1020 we will be studying and practicing computer programming. The language we will be using is Java, and we will be using a Linux operating system in the labs.

The approach that is taken in 1020 is a client-based one; this means that you will be assembling pre-built components to create a computer program. The designers of this course felt that it is important that you learn how to build a program from pre-existing components before learning how to create your own components.

Broadly speaking you need to master three things to succeed in this course:

Thing you Need to Master How To Master
basic Java and computing science attend lectures,
attend labs,
read textbook,
do the practice problems and eChecks,
look online at reputable sources,
use office hours,
practice, practice, practice writing code
programming tools
(editor, compiler, reference material)
attend lectures,
attend labs,
practice, practice, practice writing code
lab environment attend labs,
spend extra time in the lab using Linux

Administration: Getting a CSE Account

You need to get a CSE account so that you can use the computers in the computer labs and so that I can send you email. To get an account, you need to go to any one of the Prism computer labs (CSE1004 or CSE1006) and follow these instructions.

Administration: Checking email

Email lists are generated automatically based on information from the Registrar (i.e. I have no control over the addresses in the list). Email I send to the entire class will go to your Computing Science and Engineering (CSE) account.

You can check your email from a web browser.
CSE web email login screen

Administration: Forwarding email

If you want your email to go to a different account, you can forward it to that account using the following steps:

  1. Log in to your CSE email account
  2. Select the Filters icon
    CSE web email Filters icon
  3. Select the Forward option
    CSE web email forward filter
  4. Enter the email address you want your mail delivered to and press the Save button
    CSE web email forward filter

Administration: Textbook

Text book: Java By Abstraction The text book was written specifically for teaching 1020. It contains all of the weekly programming exercises (the eChecks) and includes a CD ROM with most of the software used in the course.

You are expected to read approximately one chapter per week. See the reading schedule.

Administration: Lectures

Monday
10:30—11:30 AM
Curtis Lecture Hall (CLH) H
Wednesday
10:30—11:30 AM CLH H
Friday
10:30—11:30 AM CLH H

The lectures are not 50 minutes of me talking. Generally, I will start each lecture by posing a small problem. We will work through the solution of the problem, introducing concepts (with many examples) as they are needed. Then you will asked to work on a new problem.

I will demonstrate the use of software tools (editor, console, compiler, Java application launcher) that are similar or identical to the ones you will use in the labs and labtests.

If you have a laptop, you should set it up for Java software development and bring it with you to class.

Lecture slides will be posted the morning of each lecture. The slides are meant to be viewed from a modern web browser with JavaScript enabled. See here for how the slides are made.

Administration: Labs

Monday
2:30—4:00 PM
CSE 1004A
Wednesday
2:30—4:00 PM (starts today!)
CSE 1004A
Wednesday
5:00—6:30 PM (starts today!)
CSE 1004A
Thursday
2:30—4:00 PM CSE 1004A
Thursday
7:00—9:30 PM CSE 1004A

Each lab session will be run by a teaching assistant (TA). Your TA is a graduate student in the Department. During a lab session, the TA will first show you how to solve a programming problem and then spend the rest of the lab helping individual students with a second programming problem (an eCheck) that you submit for marking by the specified due date.

The lab PCs run a Linux (CentOS) operating system. We expect that most students will not have previously used Linux. It is very important that you attend the labs to familiarize yourself with the lab computing environment so that you can effectively write the lab tests.

Find our more about the Prism Lab.

Administration: Assessment

Tentative test dates

eCheck
approx 1 per week
10%
Labtest
in Lab week of Sep 30—Oct 6
10%
Midterm (written)
Sunday Oct 25
15% ???
Midterm (labtest)
Sunday Oct 25
15% ???
Labtest
in Lab week of Nov 11—Nov 17
15%
Exam (written)
set by Exam Office
17.5% ???
Exam (labtest)
set by Exam Office
17.5 %

The final official assessment scheme will be posted here.

To Do For Next Lecture

  1. Get a CSE account.
  2. Set up your laptop and home PC for Java software development. Instructions are here.
  3. Bring your laptop (if you have one) to class from now on. You will probably want to make sure your wireless network connection works.
  4. Read Chapter 1 up to and including Section1.2.3.