Instructor:
Course Web Site:
www.cs.kzoo.edu/cs102/
Course Teams
Site:
CS Collaboration Center
Textbook: Understanding the Digital World by Brian W. Kernigan, 2nd Edition (2021). Other reading assignments will be made available online.
Prerequisite: None
Course Overview
This half-unit course introduces the general algorithmic (disciplined, step-by-step) approach to problem solving, and the basic concepts of computer programming in the context of developing dynamic web pages using JavaScript.
By the end of this course, students will be able to create basic dynamic web pages in HTML and JavaScript using standard functions, user-defined functions, built-in and user-defined objects, conditional statements, and loops. Students will have implemented projects incorporating state changes, search algorithms, and sorting.
Topics to be covered (and approximate course schedule):
Week Topic(s) Projects Week 1: Basic HTML Course Web Page Weeks 2 - 3: JavaScript Variables, Numbers, and Strings
JavaScript Functions
JavaScript Objects
Math FunctionsNumbers & Strings
MadLibs Lucky NumberWeeks 4 - 5: Conditional Statements
User-Defined Functions
More Complex ConditionsVirtual Pet
PuzzleWeeks 6 - 7: Timer-Driven (Event-Driven) Programming
Constructing Objects
Arrays & Loops
Virtual Pet
Art CatalogWeeks 8 - 10: Searching & Sorting
HTML FormsArt Catalog
Art Gallery Entry Form
A detailed schedule of readings, assignments, and in-class activities is available on the Schedule page of the course web site.
Format and Resources:
This class will meet twice a week, on Tuesdays and Thursdays. Much of what would typically be the lecture portion of this course has been replaced with short videos that introduce new concepts. You should watch these before class. This leaves class time for structured programming exercises and other active learning activities. Active and consistent attendance, engagement, and collaboration are the best ways you can benefit your learning.
- Class: Classes will take place in Olds/Upton 312. There are several college computers available in this classroom, although many students choose to bring their own laptop.
- Computing and Software Requirements:
A computer running Windows,
MacOS, or Linux, plus Internet connectivity, is recommended.
The computer science department uses free and open source software
whenever possible, choosing applications that work across Linux, Mac,
and Windows platforms.
Most, if not all, of the college-owned computers on campus have
the appropriate software.
- We will use Visual Studio Code for developing and maintaining web pages. Visual Studio Code is installed on the College computers, or you may download it onto your own computer from https://code.visualstudio.com/download.
- We will use FileZilla for transferring our web pages to the campus server. You may download the FileZilla Client from https://filezilla-project.org.
- Online Information and Assignment Submission:
In addition to the physical, on-campus space in ULC 118, this course has an online presence.- The course web site is https://www.cs.kzoo.edu/cs102/. The course syllabus and detailed schedule can be found there.
- Faculty are available for in-person and online help during office hours, and often at other times as well. Please make use of this — we are here to help! Teaching assistants are also available Sunday - Thursday evenings, in-person (ULC 118) or online through the CS Collaboration Center team on Microsoft Teams. (See the Collaboration Center page listing people and hours.)
- We will use the Kit web site for assignment submissions and grades.
Attendance and Participation:
Regular attendance and fully engaged participation is expected of all students in this course and will affect your grade. Active participation means being on time, being prepared, listening to others, contributing ideas of your own, and asking questions as they come up. There are direct correlations between keeping up, how much you learn and can apply later, and your grade.
If you are ill or pose a health risk to other people, you should wear a mask or not come to class. You should keep up as well as your condition will allow by watching class videos, working on assignments, and communicating with your instructor and/or TAs in the Collaboration Center through Teams.
To create an inclusive and supportive learning environment in which everyone can participate fully, we will follow these Community Guidelines adapted from the Center for Research on Learning and Teaching (CRLT) at the University of Michigan.
Assignments:
This course consists of many small activities that build on one another. It is very important to remain actively engaged in the course on a regular basis in order to stay on track.
All assignments, as well as links to readings and videos introducing new material, will be made available on the Detailed Schedule page of the course web site. Students are responsible for checking this resource frequently.
Reading and video assignments introducing new concepts will be assigned for each class. You are expected to come to class prepared, ready to apply these concepts in programming assignments or other hands-on activities.
Quizzes provide a way for you to assess your own understanding of basic programming concepts.
In-class activities: Class time will generally be for hands-on programming and other active learning activities. Any activities that are not completed in class should be completed before the next class.
Programming Projects: There will be several programming projects. These are longer assignments undertaken outside of class that will give you the opportunity to integrate several skills together.
Assignments are due at the beginning of class.
Late policy: Assignment due dates have two important functions: to help you plan your time and keep you on track to successfully complete the course, and to make grading more manageable. Programming projects, in particular, are time-consuming and difficult to predict, so you should start them as soon as they are assigned. We will assign homework and projects far enough in advance that you will have some flexibility in when you schedule your work, but you are responsible for budgeting your time wisely so that you will be able to complete your assignments on time. Late assignments may accrue late penalties or might not be accepted at all, unless you clear it with the instructor in advance. To encourage timeliness, assignments that are one day late will lose 2%; two - three days late will incur a 5% loss. After three days, the loss will jump significantly to 25% or more. In unusual circumstances an extension may be granted, but only if you speak to your instructor in advance.
Grades:
Grades will be based on the following activities:
Required
To PassComplete all In-Class Activities 65% Complete all Quizzes 15% A - B Programming Projects (Design, Implementation, Evaluation) 20%
Collaboration and the Honor System:
This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility. In particular, academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor system. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.
Quizzes in this class are to help you assess your own understanding. As an experiment, quizzes in this class will start out very open — you may look at online materials, talk to other students in the class as you take them, and you may re-take them. If this does not work well (students aren't learning what they should be learning), the quizzes will revert to a more traditional model, in which case they would be completely individual, with no discussion about them allowed.
In-class Assignments and Programming Projects: Some assignments may allow you to work in pairs. Whether working individually or in a team, you may discuss in-class assignments and programming projects with classmates and give and receive help. You may not, however, digitally share code or code fragments, unless you are working as a team on a project where teamwork has been explicitly allowed. You may also, of course, receive help from your instructor and from the CS teaching assistants during class and Collaboration Center hours.
You should document authorship, group-work, and "outside" help (from the TAs, your instructor, or other groups within the class) in the comments at the top of your program using the following clauses:Authors(s): Working with or alongside classmates: With Assistance From:
Penalties for violating the Honor System in this course may include receiving no credit for an assignment, a lowered course grade, or failure of the course. Depending on the severity of the incident, a report may be sent to the Dean's Office, which may result in additional consequences, including suspension from the College. Any subsequent violation will result in the immediate failure of this course.