Please enable JavaScript.
Coggle requires JavaScript to display documents.
COMP1501 Things You Should Be Able To Do (Program in Java (Describe the…
COMP1501 Things You Should Be Able To Do
Think "algorithmically" and solve problems
Define "algorithm" and identify the 3 properies of good ones
List the steps of solving a problem algorithmically
List strategies to help with problem solving
Analyze and explain algorithms for solving simple problems
here's an algorithm - explain what it's doing / what problem it's solving in plain English
here's a problem and an algorithm...does the algorithm solve the problem?
Apply problem solving strategies to create algorithms for solving simple, well-specified problems.
here's a problem - what algorithm would you make that solves it?
can you create your algorithm with just pseudocode? or a mix?
Describe the relationships between algorithms, programs, and computers.
Program in Java
Analyze and explain the behaviour of simple programs involving fundamental programming constructs...
this is basically saying "trace code that can contain these things"
blocks
of code, executed in sequence
variables
scope
local
instance variables
types
expressions
assignments
IO
output
System.out.println()
System.out.printf()
format specifiers
concatenation
special characters
newlines
tabs
double quotes
System.out.print()
input
Scanner
connected to
System.in
files
getting data
next()
nextLine()
nextInt()
nextDouble()
iterative constructs
types covered
while
do-while
for
for-each
conditional constructs
types covered
if
if-else
if-else if-else
switch
boolean expressions
boolean operators
|| (or)
&& (and)
! (not)
named procedures (methods/functions) with parameters
nesting
Describe control-flow and effect of each of the fundamentals
"can you follow the flow of a program from start to finish, even if it branches or loops?"
"can you describe what each line in a program
does
?
Describe the issues associated with variable scope, lifetime and initialization, including the mechanics of parameter passing.
what happens when you declare a variable? initialize it? assign a value to it?
how long does a variable "live"?
what's the difference between a global and local variable?
is a parameter a local variable? how so? how not?
how do pimitive parameters and reference parameters act differently?
Trace, systematically, the execution of simple programs that use the fundamental programming constructs above, keeping track of program state and output.
Modify and expand short programs that use the fundamental programming constructs above.
"if you were given some code, could you modify/expand it to behave in different ways"?
Choose appropriate variables for a given programming task.
"Are you able to name all the primitive and reference types we've used this semester - and know when you should use them?"
Choose appropriate conditional and iteration constructs for a given programming task.
What conditional statements have we covered?
What's the difference between stacked and nested conditionals?
How are your Boolean expressions, especially when complex conditions are involved?
"Iteration construct" is just fancytalk for loop...what kinds have we covered?
Though the different types of loops are interchangeable, there is often a "traditional" choice for certain tasks. Do you know what they are?
Design, implement, test and debug programs that use the programming constructs above.
This is what assignments are all about.
Apply the techniques of structured decomposition to break a problem or program into smaller pieces.
"Can you break a large problem into smaller ones?"
"Can you take a big method and chunk it into smaller helper methods?"
Identify recurring programming problems within a program’s design, and employ named procedures and parameters to avoid code duplication.
I think this means "can you spot duplication in code and create methods to capture this duplication?" It's a bit vague, this is.
Explain the concept of encapsulation, and identify language facilities that enable it.
I didn't really cover this; you'll cover it again in 1502. I'm a bad person.
Describe and apply simple testing strategies for ensuring that a program behaves as expected.
Another hole.
Test first (by writing client code).
Describe and apply simple debugging strategies for locating and fixing program errors.
This has mainly consisted of "do hand traces", "use trace statements", and "if you have a stack trace, actually read it and do the 'start-at-the-top-of-the-trace-and-read-down-until-you-find-your-code' thing"
Describe and apply the common operations on each of the data types above, including arithmetic operations, string operations, relations and logical operations, conversions, and collection manipulation and indexing.
Write programs that make appropriate use, for information representation, of each of the data types above.
Confession: I do not know what this means.