Computer Science 0145-602 Section 002 (online), Fall 2018

Keywords: computer programming, CS1, javascript, computational thinking, critical computational literacy, problem solving

Description: This course introduces students to programming and some core concepts of computer science, using a modern, object oriented programming language. Students learn concepts of variables, functions, selection, repetition/loops, basic data structures (arrays, lists, hashtables), and basic object oriented programming.

We are looking at a society increasingly dependent on machines, yet decreasingly capable of making or even using them effectively.
― Douglas Rushkoff, Program or Be Programmed: Ten Commands for a Digital Age

Class meetings: fully online

Instructor: Matthew X. Curinga,

Office hours:

  • Monday 12-2pm, online
  • Wednesday 2pm-4pm, Alumnae Hall Room 226A (Garden City campus)
  • office hours by appointment

Learning Goals

  • understand the types of problems that can be solved using computational techniques
  • understand the basic concepts of computation (CPU, RAM, permanent storage, GUIs, file systems, network connections)
  • learn core computer programming concepts (abstraction, variables, conditions, functions, repetition, recursion)
  • think algorithmically to design and test computer programs
  • master the basic syntax and idioms of the Javascript programming language
  • use technical documentation, APIs, and the internet to learn new technical concepts
  • develop step-by-step problem solving and debugging practices

Required Books

None

Required Software/Online Accounts

Class Sessions

https://www.lynda.com/C-tutorials/Algorithms/167922/181556-4.html

Week Date Topic Due
1 Aug 27 Turtle: Coding and algorithms -
2 Sep 3 Problem solving in computer programming Lab 1
3 Sep 10 Variables and data Lab 2
4 Sep 17 Functions and testing Lab 3
5 Sep 24 Conditions Lab 4
6 Oct 1 Repetition with while Lab 5
7 Oct 8 Strings and repetition with for study!
8 Oct 15 Midterm -
9 Oct 22 Arrays -
10 Oct 29 Objects & Sets Lab 6
11 Nov 5 JSON data Lab 7
12 Nov 12 Networks and files Lab 8
13 Nov 19 Open Data Lab 9
14 Nov 26 Graphs & Charts Lab 10
15 Dec 3 Final project workshops -
16 Dec 10 Finals Final project

Assignments and Grading

Assignment Pct Due date
Labs (10 total) 50% Sep 13
Midterm exam 25% Oct 18
Final project 25% Dec 14

Labs (50%)

Most weeks there will be a programming lab due. Labs will consist of a single exercise that focuses on using the computer programming concepts we’re learning to solve a problem. Each lab will be worth 0-5 points. Roughly:

  • 0 points: for not turning in any work
  • 1-2 points: for a basic attempt, but code isn’t working or has fundamental flaws
  • 4-5 points (mostly) solution demonstrates mastery of relevant concepts
  • 5 points: solution works, demonstrates mastery of concepts, and is well formatted and clearly written

Everyone’s lowest grade will be thrown out (so your lab score will be the average of your 9 highest lab grades).

Midterm (25%)

The midterm will consist of 5 “short answer” styled problems where you write a function for each prompt to solve a specific problem. The short answer prompts will be very similar to the textbook exercises from Think JS. This section is worth 10 points.

Part 2 of the exam will require writing a longer program that consists of several functions. Students will choose to answer 1 of 3 possible problems. The program should demonstrate the students ability to break down a problem and write a working computer program that provides a solution.

Final project (25%)

For the final project you will work in a team of 2-3 people to create your own data analysis and visualization of the data available for the New York City (NYC) school system.

NYC publishes a wealth of information regarding their schools on the schools website and the open data portal. Data includes student demographic and geographic information, test results, attendance, survey data, building and physical information, employee data, and more.

Your team must decide what interesting insights this data might afford, and then present your results through a series of tables and graphs.

To submit your work, please copy the link to your repl and the names of each team member. Your team only needs to submit their work one time.

You can work from the data sets that we have been using, however you may want to incorporate new data that you gather directly. You can explore the data released at:

Of course, you may incorporate other data sets as you see fit.

The final solution will be scored using the following guide:

Solution (7 points)

How well does the program written solve the problem? Does the project seriously engage with the data? Does it use computer analysis to provide interesting insights? Is the data presented in a meaningful and usable way?

Your team’s ability to design a solution to the problem is evaluated by this measure.

Elegance & Robustness (8 points)

This area evaluates the quality of the computer code produced by the team. An elegant program provides a parsimonious solution that is both efficient and clear. A robust program is flexible and able to change. In the case of data analysis, it would be easy to modify if the input data changed or the output requirements are updated. It wouldn’t “break” if it encountered unexpected data, and would continue to operate even if the amount of data were increased dramatically. Often, both elegance and robustness are achieved through refactoring: the process of reflecting on code and revising it after an initial working solution is achieved.

Risk Taking (5 points)

Learning should be an adventure. One of the most exciting things about writing software is the sense of new possibilities and discovery. The “risk taking” aspect of your team’s grade will reflect the chances that you take with your project. Even if your solution isn’t quite what you hoped for, or your code isn’t as elegant as you’d like, it’s important that you take chances and try new things. To do well in this section, you might want to shoot for an ambitious, or complex analysis; or integrate some Javascript analysis that hasn’t been explicitly covered in the course.

Code Style (5 points)

Your code should be well formatted and easy to read. Your functions and variables (aka “identifiers”) should have clear, meaningful names. Comments should be used sparingly, but appropriately to guide the human reader through your code.

All project members will receive the same grade.

Javascript Documentation and References

Books & Tutorials

Academic Assistance for Students with Disabilities

As the instructor of this course, I am responsible to do everything within reason to actively support a wide range of learning styles and abilities. This course has been designed according to principles of Universal Design for Learning. Feel free to discuss your progress in this course with me at any time.

If you have a disability that may significantly impact your ability to carry out assigned coursework, please contact the Student Access Office, (formerly the Office of Disability Support Services) located in Post Hall, First Floor, 516-877-3145, sao@adelphi.edu.

The staff will review your concerns and determine, with you, appropriate and necessary accommodations. When possible, please allow for a reasonable time frame for requesting ASL Interpreters or Transcription Services; a minimum of four (4) weeks prior to the start of the semester is required.

Writing Center https://writing.adelphi.edu/

The Writing Center is a free service available to all Adelphi University undergraduate and graduate students. We can assist students in all disciplines to become more effective and confident writers, and to hone the craft of critical thinking in approaching the writing process.

Learning Center https://learning.adelphi.edu/

The Learning Center promotes not only academic success, but also an enriched scholastic experience. We foster critical thinking and the development of creative strategies, and offer a springboard into the intellectual world beyond college.

University Statement on Academic Integrity

You are expected to behave with the highest level of academic integrity. Cheating and other forms of dishonesty will not be tolerated and will result in the proper disciplinary action from the university. Classroom behavior that interferes with the instructor’s ability to conduct the class or ability of students to benefit from the instruction will not be tolerated. All beepers and cellular phones should be turned off while class is in session. You are expected to come to class prepared - this means having read and studied the assigned chapters before class. By having prepared in this manner, you will be able to maximize your time spent in class.

Adelphi University demands the highest standards of academic integrity. Proper conduct during examinations, the proper attribution of sources in preparation of written work, and complete honesty in all academic endeavors is required. Submission of false data, falsification of grades or records, misconduct during examinations, and plagiarism are among the violations of academic integrity. Students who do not meet these standards are subject to dismissal from the University.

Use of Candidate Work

All teacher education programs in New York State undergo periodic reviews by accreditation agencies and the state education department. For these purposes samples of students’ work are made available to those professionals conducting the review. Student anonymity is assured under these circumstances. If you do not wish to have your work made available for these purposes, please let the professor know before the start of the second class. Your cooperation is greatly appreciated.

image/svg+xml
Creative Commons License
Introduction to Programming was created by: This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at https://github.com/mcuringa/adelphi-ed-tech-courses.

Last modified: Saturday, 02. March 2019 11:02AM