Instructor Aaron Brick,
abrick@ccsf.edu
M.I.M.S., Berkeley, 2005; B.S., Johns Hopkins, 2000
Batmale 462, box L130; office hours T & R 4 – 5 pm
This site is http://fog.ccsf.edu/~abrick/
POLICIES.
- Raw grades are 40% each homeworks and exams, and 10% each exercises/quizzes
and discussion. Final grades are biased towards an even distribution, or fractionally
curved; above 80% is an A, above 60% a B, above 40% a C, above 20% a D, otherwise an
F. Informally published letter grades on this web site are preliminary and
indicative only, and are subject to change.
- Expect two exams per semester. Exams are one hour in duration, open-book, and consist of conceptual and technical problems.
- Expect weekly assignments due Sunday night at midnight (late submissions are accepted). Submit homework only by running the program ~abrick/submit on the student server hills.ccsf.edu. Written notes on your work are available on request.
- Homework earns the mean of its correctness, validity, timeliness, indentation, comments, and extra credit scores. Correctness indicates that your program has addressed the problem at hand. Validity conveys whether your program is well-formed and syntactically sound. Timeliness shows whether you have turned it in on time. Indentation reflects the consistency of your indentations. Comments points are awarded for prose comments.
- Expect to participate by speaking up in seminars, posting in online groups, cooperating in work groups, asking questions, citing to resources, and assisting your colleagues. You may also be offered participation tokens to redeem online.
- If you are on the wait list for one of my lecture classes, start attending it. If you are on the wait list for one of my online classes, come to the orientation, or my office hours in the first two weeks of class. I will be able to give you an add code and you will replace someone who is dropped after missing the first sessions.
- Our textbooks are generally tutorials more than references, so you may not need to keep one forever; you are welcome to use a previous or alternate edition.
- Your initial password on our campus networks will be your birthdate in the form "jan0188".
- See me in person to propose an extra credit project.
COURSE DESCRIPTION.
Introduction to computer programming and problem-solving. No prior programming experience required. Course concepts
include: problem solving techniques, algorithms, program design, control structures, functions, arrays and use of the C++
programming language.
COURSE DESCRIPTION.
Introduction to computer programming and problem solving. No prior programming experience required. Course
concepts include: problem solving techniques, algorithms, program design, control structures, functions, arrays and use
of the Java programming language.
SCHEDULE.
- For week 1, of course there can be no assignment
- For week 2, read “Java Fundamentals” 1–3, and submit your “Hello
World” program as assignment 1
- For week 3, read “Java Fundamentals”
4–7 and submit your distance-to-the-sun program as assignment 2
- For week 4, read “Java Fundamentals”
8–13 and submit your
stock sales program as assignment 3
- For week 5, read “Decision Structures” in its
entirety and submit your tax bracket program as assignment 4
- For week 6, read “Loops and Files”
1–2, 4–7 and submit your prime-finding program as assignment
5
- For week 7, read “Methods” in its entirety and submit your coin tossing program as assignment 6
- For week 8, read “Classes & Objects”
1–3 / “A First Look at Classes” and submit your class
model of an AM
radio as assignment 7
- For week 9, read “Classes & Objects” 4–8 / “A Second Look at Classes” and be prepared for the midterm on October 17th
- For week 10, read “Arrays and the ArrayList class” 1–4 and
submit your population sampler as assignment 8
- For week 11, read “Arrays and the ArrayList class” 5–12 and
submit your
starburst generator as assignment 9
- For week 12, submit your poker dealer as assignment 10
- For week 13, read “Text Processing and More about Wrapper
Classes” 1–4 and submit your pronounceable password generator
as assignment 11
- For week 14, submit your source code analyzer as assignment 12
- For week 15, enjoy your Thanksgiving holiday
- For week 16, submit your dictionary prefix counter as assignment 13
- For week 17, review course material for the final exam.
- In week 18, the exam for the 3-5 pm section is December 16th, 4-6 pm, and that for the 6-8 pm section, December 19th, 6-9 pm.
31858 401: Tuesdays and Thursdays, 2:00 - 4:00 PM (through March) in Batmale #413
31860 591: Tuesdays and Thursdays, 6:30 - 8:30 PM (through March) in Batmale #413
COURSE DESCRIPTION.
Introduction to the Unix/Linux operating system. Unix/Linux file management and common utilities. Major Unix/Linux features and structural overview.
SCHEDULE.
- For week 1, of course there can be no assignment
- For week 2, read hours 1 – 3 and submit assignment 1, a script which lists the files in /tmp .
- For week 3, read hours 4 – 7 and submit assignment 2, a script which reports the ownership of any file in /usr/lib that's over 20 megabytes in size.
- For week 4, read hours 8 & 9 and submit assignment 3, a script which finds the ten most common two-letter prefixes for hills usernames. Hint: the top one is "jc".
- For week 5, read hours 13 – 15 and submit assignment 4, a script which lists the users which own running /usr/sbin/httpd processes. Hint: I found three.
- For week 6, read hour 22 and submit assignment 5, a script which lists the (file magic) types of the media files listed in ~abrick/resources/names . Hint: use null termination to pass the filenames to xargs.
- For week 7, submit assignment 6, a script which on hills sends exactly ten pings to each of two hosts (you will invoke ping two times). Use your knowledge of geography to identify one host to which pings average under 1 millisecond, and one host to which pings average over 200 milliseconds.
- For week 8, prepare for the final; no assignment.
31838 401: Tuesdays and Thursdays, 2:00 - 4:00 PM (from March) in Batmale #413
33052 831: online (from March)
COURSE DESCRIPTION.
Analyze, design, write, test, and debug Unix shell scripts. Students learn basic shell scripting techniques and develop scripting skills needed for Unix/Linux System Administration courses. The bash shell is used.
SCHEDULE.
- For week 1, if you're in the online section, attend the orientation Tuesday March 20th at 6:30pm in Batmale 413. Insight content will open on March 20th.
- For week 2, over spring break, read chapters 1 – 4 of the textbook.
- For week 3, submit assignment 1, a script which identifies the ten most common words ending in -ton (Majeston, Ikhnaton, etc.) that occur in ~abrick/resources/urantia .
- For week 4, read chapters 5, 11, and "parameter substition" in 12. Submit assignment 2, a script which calculates the average number of words per numbered passage in ~abrick/resources/urantia . Use variables to store the word count and passage count, and shell arithmetic to get the (integer) average. Hint: the unique syntax of the passage numbers themselves makes them easier to count.
- For week 5, read chapters 6 – 8. Submit assignment 3, a script which prints nothing and exits with status 0 if the first argument is the path to an existing file, 1 if the path is to a directory, and -1 if the argument is missing or doesn't exist.
- For week 6, read chapters 9 and 10. Submit assignment 4, a script which identifies the longest line on standard input. Output both the line length and the line content. Ignore ties in line length.
- For week 7, read chapter 13. Submit assignment 5, a script which implements the following command line options in functions: -c <file> to create a file, -r <file> to remove a file, and -h to display a Usage statement.
- For week 8, start work on the capstone assignment, as follows.
- For week 9, read chapter 15 and submit assignment 6, a script which reimplements the functionality of egrep. Like egrep, it must read from files passed as arguments, and if there weren't any, read instead from standard input (try /dev/stdin). Use sed to check whether the pattern matches a line — do not use grep or egrep in your program. The only option your script must support is -n (number the output lines). Compare the output of your script to that of egrep to verify that it is working correctly.
- For week 10, be prepared for the final exam.
32091 551: Mondays, 6:00 - 10:00 PM in Mission / Valencia #473
COURSE DESCRIPTION.
Multimedia game programming using ActionScript. Program design and implementation, including algorithms, data
structures, control structures, style, and debugging techniques for the creation of web-based interactive games.
SCHEDULE.
- For week 1, of course there can be no assignment.
- For week 2, read Chapters 1 and 2. Submit AS and
SWF of assignment 1, your Hello World program.
- For week 3, read Chapters 3 and 4. There is no other assignment.
- For week 4, read Chapters 5 and 6. Submit AS and SWF of assignment 2, your
demonstration of using time-based animation to move an object back and forth on the stage while growing and shrinking on the same schedule, indefinitely.
- For week 5, read Chapter 7 and Tracing Those Angry Birds to
the Dawn of Man. Submit AS and SWF of assignment 3, a two-class
program where ten identical objects jump and fall in unison.
For extra credit, make them jump out of unison to get a wave effect.
- For week 6, submit a SWF of assignment 4, in which object turns to face any mouse click. If it looks in the same direction for five seconds, it should double in size.
- For week 7, be ready for the midterm exam.
- For week 8, enjoy your spring break!
- For week 9, prepare a game concept to present to the class. Your presentation should consist of a one minute elevator pitch, accompanied by either a sketch, illustration, or music (post online or bring on a flash drive).
- For week 10, read Understanding Pac-Man Ghost Behavior and submit as assignment 6 SWF and AS of your game. Include your document class and at least two other classes of which objects are instantiated and move about the stage.
- For week 11, read Just One More Game... and submit as assignment 7 SWF and AS of your game, including user input by keyboard and/or mouse (and make clear what the user is expected to do).
- For week 12, submit as assignment 8 SWF and AS of your game, including either a viewport or waypoints.
- For week 13, submit as assignment 9 SWF and AS of your game, including at least 2 sound effects.
- For week 14, read at least the first page of Inside
the second: A new look at game benchmarking and begin your user testing. You have two weeks to do three rounds of testing with single users and report your findings.
- For week 15, be prepared to describe to the class your user testing process and the changes you made in response to user input.
- For week 16, be ready for the final exam (one hour) and to present your game to the class (5 minutes). Submit your final SWF and AS as assignment 11.