CSCI-161: Introduction to Computer Science
Spring 2024
Contact Info
Contents
Resources:
- Zoom meeting room is 988 439 5089. (Password and direct link are available on Canvas.)
- Barnes & Kölling, Objects First with Java:
A Practical Introduction using BlueJ, Fifth Edition or higher (Required)
- You can rent or buy an electronic copy if you prefer.
- Supporting materials for the text can be found here.
- You can download BlueJ for
free.
- Java Documentation.
- Code from class.
Covid:
Yet again, we start a term with an uptick in Covid and a new variant of concern in circulation. It's highly transmissible, can be passed to (and by) those of us who are vaccinated, and can result in significant long-term illness even if you're vaccinated. Please take all possible precautions to avoid spreading Covid. Do not come to class if you're feeling sick or have had close contact with someone who is. Consider wearing a mask in class, even if CWL isn't requiring them. All of my office hours will be held via Zoom. (Our Zoom meeting room is 988 439 5089. Password and direct link are available on Canvas.)
Schedule:
Week |
Topic |
Reading |
Lab |
Assignment |
1/15 |
Intro and Overview, Objects and Classes, BlueJ
No class Monday |
Chapter 1 |
Lab 1 |
Asmt 1
(soln) |
1/22 |
State & Behavior, Methods, Constructors, Assignment |
Chapter 2 |
Lab 2 |
Asmt 2
(soln) |
1/29 |
Conditionals, Variables & Scope, Output |
Chapter 2 |
Lab 3 |
Asmt 3
(soln) |
2/5 |
Primitive Types, Object References, Logical Operators |
Chapter 3 |
Lab 4 |
Asmt 4
(soln) |
2/12 |
Interacting Objects, this, debugger |
Chapter 3 |
Lab 5 |
Asmt 5
(soln) |
2/19 |
APIs, Random, String
Exam Thursday — in lab
|
Chapter 6 (6.1–6.5) |
No Lab |
exam topics, old exam, old solns, new solns
|
2/26 |
ArrayList collections, Loops |
Chapter 4 |
Lab 6 |
Asmt 6
(solns) |
3/4 |
More Loops |
Chapter 4 |
Lab 7 |
|
3/11 |
Spring Break |
3/18 |
Arrays |
Chapter 7 |
Lab 8 |
Asmt 7
(solns) |
3/25 |
2D Arrays |
Chapter 7 |
Lab 9 |
|
4/1 |
Testing & Debugging, Searching
No class Monday. Exam Thursday — in lab
| Chapter 9 |
No Lab |
exam topics, old exam, old solns, new solns |
4/8 |
Sorting |
|
Lab 10 |
Asmt 8
(soln) |
4/15 |
Stand-alone Applications |
Sections 6.16 (main), 14.9 (Scanner, files) |
Lab 11 |
Asmt 9
|
4/22 |
Stand-alone Applications, Recursion |
More on Scanner and File
Wednesday is Last Day |
|
Final exam topics, Old exam, solns
|
Background:
This course is an introduction to computer science and programming. It
uses the programming language Java to illustrate concepts in computer
science, and the BlueJ interactive Java environment to reduce the
complexity of program development. The course emphasizes the use of
the computer as a problem solving tool, and the development of good
programming style. CSCI 161 is the introductory course for students
planning to major or minor in computer science.
No previous programming experience is expected or required
— we will start at the very beginning. As a result, some
of the initial material may be review for students with previous
programming experience. See me if you're in this category, and
we can find ways to extend or modify assignments to keep you
challenged.
This course builds progressively on previously covered material.
Therefore, it is essential to attend all classes and keep
up with the reading and the assignments. Students are expected
to attend all lectures, with exceptions permitted in
case of illness and family emergencies, and should do the assigned
readings before the relevant class. The
assigned readings listed in the schedule
are all from the BlueJ text.
Lectures will begin and end on time. Please do your best to get to class
before the start of the lecture. Use of cell phones is extremely
disruptive, so please remember to turn your phones off while in the
classroom. The different sections of CSCI 161 will not necessarly
be covering the material in the same order or at the same pace.
Thus, it is important that you come to the appropriate lab and lecture
section each week.
Grading:
Your overall grade in this course will be determined as follows:
- 44%: Assignments
- 8%: Lab Participation
- 28%: In-class Exams (February 22nd & April 4th)
- 20%: Final Exam (Wednesday May 1st, 12-2:00pm in TH 409)
Homework for this class will be submitted electronically, and must be turned in by the time specified on the assignment for full credit. Late homework will be subject to a 5% penalty for each day past the deadline, and is typically not accepted more than two days late. (Each assignment will specify its final late deadline.) The following grade cutoffs are upper bounds — they might come down, but will not be set higher: A = 95, A- = 90, B+ = 88, B = 83, B- = 80, C+ = 77, C = 73, C- = 70, D+ = 67, D = 64, D- = 60, F = <60.
Learning Outcomes:
The following course outcomes are drawn from the 2013 international Computer Science Curriculum guidelines. Upon completion of the course, successful students should be able to:
- Trace the execution of a variety of code segments and write summaries of their computations.
- Analyze and explain the behavior of simple programs involving the fundamental programming constructs: variables, expressions, assignments, I/O, control constructs, methods, parameter passing, and recursion.
- Modify and expand short programs that use standard conditional and iterative control structures and functions.
- Create algorithms for solving simple problems.
- Use a programming language to implement, test, and debug algorithms for solving simple problems.
- Design and implement a class.
- Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, the definition of functions, and parameter passing.
- Use types and type-error messages to write and debug programs.
- Apply consistent documentation and program style standards that contribute to the readability and maintainability of software.
Community Statement:
Students taking this course range from those with no prior background in programming to those with substantial experience and prior coursework. Because this course is an introduction to computer science, I do not expect students to have had any prior experience in programming. The course will work best if we respect and welcome each other no matter what level of "readiness" we are at, and we all support one another in learning. I will not tolerate behaviors that could negatively affect another student's classroom experience. Such behaviors might include: making rude or condescending comments, snickering at others' questions or comments, talking over other individuals, and so on. I reserve the right to withdraw a student from this class who is repeatedly exhibiting such behavior.
The goals of this course can only be accomplished in a setting of mutual respect, where ideas, questions, and misconceptions can be discussed with civility. As your instructor, I am committed to creating a classroom environment that welcomes all students, regardless of their identities (e.g., race, class, gender, sexual orientation, religious beliefs). I firmly believe that everyone in the class is fully capable of engaging and grasping the material, and that the world of computing is stronger when it includes the broadest possible set of perspectives. We all have unconscious biases, and I will try to continually examine my judgments, words, and actions to keep my biases in check and treat everyone fairly. I hope that you will do the same. If you feel comfortable, please let me know if there is anything I can do to make sure everyone is encouraged to succeed in this class.
Academic Integrity
The assignments form a crucial part of the course and, unless stated otherwise, students are required to work on them individually. Please ensure that any work you take credit for is your own. Inappropriate collaboration with other students is not permitted and will be subject to severe penalties. In particular, sharing your work in any way with other students (e.g. code inspection, sharing code electronically via email or photos, etc) is inappropriate, as is copying part or all of someone else's work. Code or other hints found online must be attributed, and should not compromise your ownership of the work. Please review the university's Academic Integrity policy and ask me if you have any questions regarding its application to this course.
University, Academic, and Administrative Policies
There are many university policies and resources that offer guidance on how to be safe and make the most of your college education. Here are a few that you should take a moment to review:
- Please review university emergency preparedness, response procedures, and a training video posted at www.pugetsound.edu/emergency/.
- Protect yourself and others from COVID-19 by following our ongoing
campus safety protocols, posted here: https://www.pugetsound.edu/emergency/communicable-disease-outbreak-prevention/university-response-covid-19/protect-yourself.
- For information on academic and administrative policies (such as policies on grade policies, leaves of absence, declaring a major, academic integrity, and academic petitions) please refer to the academic and administrative policies section of the Bulletin.
- If you are seeking a religious accommodation in an academic course or program, please follow the process provided in the university’s policy on Student Religious Accommodations in Academic Courses or Programs, available at www.pugetsound.edu/office-university-counsel/policies/campuswide-policies/student-religious-accommodations-academic-courses-or-programs.
- If you have any concerns about prohibited harassment or discrimination that may be affecting you or others at Puget Sound, please contact the university’s Title IX Coordinator/Equal Opportunity Officer, Wheelock 218, 253.879.3793, website: www.pugetsound.edu/title-ix-equal-opportunity, email: titleix-eoo@pugetsound.edu. The Title IX Coordinator/Equal Opportunity Officer can explain available options and help address concerns informally or formally.
- If you have a physical, psychological, medical, or learning disability that may impact you as a student at Puget Sound, please contact Student Accessibility and Accommodation, Howarth 105, 253.879.3399, website: www.pugetsound.edu/saa, email: saa@pugetsound.edu. They will determine with you what accommodations are necessary and appropriate.