|
Week |
Main Topics |
Personal Assessment |
|
Overview of computing and programming Introduction to OOP Introduction to the software life cycle Variables in programming Introduction to Unix |
Can you create directories in Unix? using commands in a terminal window? Can you nagivate your directory structure in Unix? using commands in a terminal window? Can you create a file in Unix using an emacs? Can you name and describe the steps of the software life cycle? Can you describe the difference between a variable in mathematics and in programming? Can you (did you) set up your e-mail account so that it contains your complete name? |
|
|
Java program structure Primitive types Constants vs. variables Expressions and precedence Assignment in Java Memory diagrams for primitve types Introduction to objects |
Can you explain the difference between a variable and a constant in Java? Can you explain the uses for a constant and can you identify the naming convention (see the coding standards document)? Can you identify and create legal Java variables? Can you list and describe each of Java's primitive types and provide an appropriate example of each one?
Can you write mathematical expressions as valid Java expressions? Can you write an assignment statement in Java? Can you show how a memory diagram for a primitive data type would change when an assignment statement is executed? Can you describe the difference between declaring a variable and initializing it? |
|
|
References, memory, and memory diagrams Using objects and classes Methods: new, invocation, return values Introduction to Strings Reading Javadocs Boolean expressions: relational, logical .equals vs. == |
Can you explain the difference between a class and an object in OOP?
Can you describe the difference between a reference and a primitive type in Java? Can you declare a primitive type in Java? Can you declare a reference type in Java? Can you draw a memory diagram for a set of Java statements and show how it changes as each statement is executed? Can you explain the difference between a char and a String variable?
Can you explain why you can not use "==" to determine string equality?
Following the link from the CS1 home page, can you locate and interpret the information given on the String class Javadoc? Can you invoke various methods on a given String variable? Can you write a small program that declares and initializes two strings, then invokes various methods from the String class? Do you know two different ways to concatenate Strings in Java? Can you explain what is meant by a boolean expression? Can you write and evaluate relational expressions in Java? Can you write and evaluate logical expressions in Java? Can you evaluate a complex boolean expression to determine if the expression is true or false? |
|
|
How to read/trace a program (program flow). Control structures - conditional statements: if and switch Compound statements Program flow: sequential, conditional, method call |
Can you identify where a boolean expression might be used in a Java program? Can you write an if statement given a problem description? Can you write an switch statement given a problem description? Can you write an if statement from a switch statement, and vice versa? Can you read/trace a program, draw and utilize the appropriate memory diagrams, and determine what output is produced? |
|
|
Control structures - iteration: while, for, and do while Program flow: iteration Nested loops |
Can you explain the behavior of any control structure and trace its execution? Can you write a loop to solve a problem? Can you convert any loop structure to any another loop structure, e.g., translate a for loop to a while loop? Do you know which loop structures are pre tested and which are post tested? Can you trace the execution of a nested loop? Can you read/trace a program that uses all of flow structures (sequential, methods, selection and iteration), draw and utilize the appropriate memory diagrams, and determine what output is produced? |
|
|
Constructing classes and methods Constructors Parameter passing Types of variables: class, instance, and local Unit testing and debugging strategies |
Can you explain the limitations of a local variable and can properly (effectively) use local variables when designing classes? Can you explain the difference between and known when to use instance variables vs class (static variables? Can you describe the role of a constructor in a class? Can you describe when you might have more than one method with the same name? How does Java decide which method to use when you invoke an overloaded method/constructor? Can you create a class from scratch given a javadoc or some other description of a class? Can you identify a testing strategy to apply for any classes you have written?
|
|
|
Principles of OOD: encapsulation Scope and life time Using this |
Can you describe the advantages of encapsulation? Can you describe the relationship between classes and encapsulation? Can you define what is meant by "scope"? by life time? Given a piece of code, can you determine which variable (declaration) is being referred to regardless if several variables are declared with the same name in the same piece of code? If you are reading a piece of code, can you determine what each use of this refers to? Can you write a piece of code using this appropriately? | |
|
Arrays: single, double Testing and debugging arrays Command line arguments |
Can you explain the array data structure, its properties and limitations? Can you read/trace code containing arrays and determine the output produced? Can you declare and initialize values in a array and perform simple array operations? Can you copy an array? resize an array? Are you comfortable with operations on arrays of objects? Can you identify a strategy to test and debug array constructs? |
|
|
Software life cycle - design OOD from specs Software life cycle - maintenance Software life cycle - system testing & debugging |
Can you list and describe each phase in the software life cycle?
Design:
Testing:
|
|
|
Professionalism and ethics |
Are you aware of and have you read the DCS and ACM ethics and honesty policies? Can you list the moral imperatives presented in the ACM code of ethics? Do you understand the ethical and legal issues of copying copyrighted software? |
Prepared by Trudy Howles