CSE 40872 Lecture 001
Topic: | Course Overview, Linux Programming Environment |
Author: |
Peter Bui <pbui@cse.nd.edu> |
Date: |
August 26, 2009 |
Introduction
- Name
- Major
- Year
- Favorite Programming Languages
Primary Course Goal
Practice common problem solving techniques and strategies.
Secondary Course Goal
Prepare for local and regional programming competitions and job interviews.
- Apply lessons and skills learned to competitive programming and in
technical examinations.
Of course, have fun!
Programming Contests
Not required to compete, but highly encouraged
Course Structure
- Monday and Wednesday
- Short lecture and then practice on problem of the day.
- Friday:
- Review week's lectures and discuss solutions to problems.
Solutions to week's problems must be submitted by midnight Friday.
Login
- Use any Linux machine, including the cluster machines.
- Can use ssh to remotely login to machines.
Note
Can use Windows, OSX, but no support, and tests will be done on Linux.
Source Code
Put code in:
dropbox/<afsid>/problem<XXX>/problem<XXX>.c
Include name, afsid, and description of problem in source file.
To compile use:
gcc -o problem<XXX> problem<XXX>.c
g++ -o problem<XXX> problem<XXX>.cc
Tips
Consider the use of bzr, git, hg, for
code versioning and syncing.
- Understand the input and output formats:
- Write the input tests.
- Work out the problem by hand.
Bring and use references.
More Tips
- Develop incrementally, compile and test often.
- Write down pseudocode in comments first.
- Separate tasks into functions.
- Avoid copying and pasting, repeating yourself.
- Macros are not evil.
- Separate tasks into functions.