This course is an introduction to computer science, focusing on the
disciplines of procedural, data, and machine
abstraction. It is intended for higher
ability students, but it does not require experience with any particular kind
of computer or programming language. It does require a certain level of
mathematical sophistication. The course satisfies the
Liberal Education requirement
Language and Reasoning Skills: Logic and Quantitative Reasoning.
The total number of points possible on
exams, programming assignments, and lab exercises are
shown on the right.
Grades are assigned based on percentage of total points as shown
below. The grade cutoffs will never be raised; but they may be
lowered.
% of Total |
Grade |
90 |
A |
87 |
A- |
83 |
B+ |
80 |
B |
77 |
B- |
73 |
C+ |
70 |
C |
67 |
C- |
63 |
D+ |
60 |
D |
Item |
Number |
Points Each |
Total |
Exam |
3 |
50 |
150 |
Assignment |
4 |
25 |
100 |
Lab Exercise |
9 |
10 |
90 |
Extended Lab Exercise |
4 |
15 |
60 |
Grand Total |
|
|
400 |
This course is designed to be an introduction to the
science of
problem solving through the writing of computer programs. Students will
become familiar with multiple computer programming paradigms, including
functional, imperative, and object-oriented programming.
Ten weeks of the course will be taught
using the powerful, elegant, and high-level language
Racket, an
extension of the symbolic programming language
Scheme.
Racket is simple to learn and helps students understand the principles of
procedural and data abstraction that they will carry throughout their
programming careers.
The last part of the course will introduce the concept of machine
abstraction by introducing the object-oriented programming
language
C++.
This course addresses
these
Student Learning Outcomes (campus-wide):
- Think critically and creatively in seeking solutions to practical
and theoretical problems (SLO 3)
This courses addresses
these
UMD Liberal Education Logic and Quantitative
Reasoning outcomes (LQ-SLOs):
- LQ-SLO 1: Students will appropriately translate problems to symbolic
systems (Racket and C++ programs)
- LQ-SLO 2: Students will apply mathematical or logical reasoning to
identify potential solutions using appropriate computer science design
techniques
- LQ-SLO 3: Students will demonstrate ability to test solution
strategies to verify their correctness
This course also addresses outcomes in
computer science education
specified by the UMD Department of Computer Science and
aligned with the standards put forth by the
ABET accrediting board.
All lab exercises and assignments in this course are individual, and just like an
essay or term paper, any work for them is expected to be your own:
- You may discuss a lab or assignment and general approaches to a problem with your
professor, your lab instructor, lab consultants, or your classmates, but
you must analyze, design, and write your programs yourself.
- You may
consult with others to seek help in debugging, but you may
not collaborate with anyone on the writing of your code.
- There will be no collaboration on exams.
Violation of this policy is considered to be
Scholastic Dishonesty.
The menu at the left provides links to various service and support groups.
As instructor I shall make every attempt to treat all students
equally, without regard to race, religion, color, sex, handicap, age,
veteran status, or sexual orientation.
To inquire further about the University's policy on cultural diversity,
see the
Office of Cultural Diversity (opens in new window).