CSC 111 Introduction to Computer Science (Section C)

Similar documents
INF 315E Introduction to Databases School of Information Fall 2015

ESET 349 Microcontroller Architecture, Fall 2018

Course Syllabus. Course Information

CISC 3130 Data Structures Fall 2018

A: 90% - 100% B: 80% - <90% C: 70% - <80% D: 60% - <70% F: < 60% Important Dates:

EECE.2160: ECE Application Programming Spring 2017

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

ESET 369 Embedded Systems Software, Fall 2017

EECE.2160: ECE Application Programming Spring 2019

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CS 0449 Intro to Systems Software Fall Term: 2181

Programming Languages CSCE

Web Programming Fall 2011

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

CRIJ 1301 Introduction to Criminal Justice (8-Week On-line Version) Fall 2017 Aug. 28 through Oct. 22

CPSC 4600 Biometrics and Cryptography Fall 2013, Section 0

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

Syllabus CSCI 405 Operating Systems Fall 2018

CS535: Interactive Computer Graphics

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

CSCE 441 Computer Graphics Fall 2018

Developing Web Applications and Services Course Syllabus Fall 2015

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

CSc 2310 Principles of Programming (Java) Jyoti Islam

Computer Science Technology Department

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

Cleveland State University

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Introduction to Information Technology ITP 101x (4 Units)

Business Information System Analysis and Design Fall 2017

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

TEACHING & ASSESSMENT PLAN

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

AE Computer Programming for Aerospace Engineers

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

Meetings This class meets on Mondays from 6:20 PM to 9:05 PM in CIS Room 1034 (in class delivery of instruction).

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

CMSC433 - Programming Language Technologies and Paradigms. Introduction

Computer Technology Division. Course Syllabus for: COMT Spring Instructor: Joe Bolen

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

INFS 2150 (Section A) Fall 2018

CS/SE 153 Concepts of Compiler Design

ESET 369 Embedded Systems Software, Spring 2018

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

Web Programming Spring 2010

Cleveland State University

Computer Science Technology Department

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

SYLLABUS BIOLOGY 1107: Principles of Biology I Fall Semester Section 001: (9:05-9:55AM, Mon, Wed and Fri) Bldg.: Laurel Hall, Room 102

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2012

Course and Contact Information. Course Description. Course Objectives

Internet Web Technologies ITP 104 (2 Units)

Introduction to Databases Fall-Winter 2010/11. Syllabus

College Algebra. Cartesian Coordinates and Graphs. Dr. Nguyen August 22, Department of Mathematics UK

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

CPSC 5157G Computer Networks

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

CMPE 152 Compiler Design

CS/SE 153 Concepts of Compiler Design

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

IT 341 Fall 2017 Syllabus. Department of Information Sciences and Technology Volgenau School of Engineering George Mason University

CS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.

CHEM 31A (90366): General Chemistry Fall 2011

CISC 3130 Data Structures Spring 2018

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

CPS352 Database Systems Syllabus Fall 2012

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

You must pass the final exam to pass the course.

Biochemistry I: Biomolecules and an Introduction to Metabolic Energy MBIO2360/CHEM2360: A01 Summer 2015: 3 credit hours

CSCE 206: Structured Programming in C

TEACHING & ASSESSMENT (T & A) PLAN College of Economics Management and Information Systems Department of Information Systems

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

Sprint 2017, Sul Ross State University

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2011

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

CHEM 31A (90285): General Chemistry Fall 2013

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

ECE 4450:427/527 - Computer Networks

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

Introduction to Computer Systems

G r a p h i c D e s i G n i Fall 2007

ECONOMICS 5317: CONTEMPORARY GOVERNMENT AND BUSINESS RELATIONS

Survey of Programming Languages Dr. R. M. Siegfried 407 Science (516) (not for homework submission)

Advanced Topics in Database Systems Spring 2016

Central Washington University Department of Computer Science Course Syllabus

Introduction to Data Structures

Syllabus Revised 08/21/17

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

TCOM 663/CFRS Intrusion Detection and Forensics Department of Electrical and Computer Engineering George Mason University Fall, 2010

Computer Information Technology 240 Networking Fall 2013 Sections 1 & 2

CSCI 201L Syllabus Principles of Software Development Spring 2018

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

Syllabus of ENPM 691: Secure Programming in C

Introduction to UNIX

COMP-202A: Introduction to Computing 1

CS 4317: Human-Computer Interaction

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Transcription:

CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming language. Recommended as the first course for students considering a major or minor in computer science. Counts as a Division V divisional course. Lab: One hour, fifteen minutes per week. Prerequisites: Undergraduate status, cannot already have declared a CS major or minor; POI otherwise. Professor: Dr. William Turkett - Manchester 240, 758-4427, email: turketwh@wfu.edu Office Hours: (shared with CSC 112 class) MR 5:30-7:00pm, T 4:15-6:00pm, W 1:00-2:00pm, and by appointment Teaching Assistant: Greg Galante (galagg8@wfu.edu), Harry Pham (phamtn8@wfu.edu), Shuai Zheng (zhens8@wfu.edu) Office Hours: TBD Meeting Time: Lecture: MWF 2:00 2:50pm, Manchester 241 Lab: Your lab section could be any of the following, depending on your schedule: CSC 111 Lab A Tuesday, 4:00-5:15pm, Dr. David John CSC 111 Lab B Thursday, 4:00-5:15pm, Dr. William Turkett CSC 111 Lab C Monday, 3:00-4:15pm, Dr. David John Even though there are multiple sections of the class, please do not attend any session except for the one you are registered for, as there are space limitations in the room the course is taught in. Webpage: http://turkett111.tumblr.com Textbook: A Gentle Introduction to Concurrent Programming, by Wittman, Mathur, and Korb, available only at the Wake Forest University Bookstore. Grading: 3 Tests - 40% 13 Lab Assignments - 20% Final Exam - 40% Gaining hands-on experience with problem solving and programming is fundamental to learning Computer Science, so it is a policy for this course that a failing lab average will automatically result in a failing grade for the entire course.

Expected Grading Scale: A+ 97-100 A 92-96 A- 90-91 B+ 87-89 B 82-86 B- 80-81 C+ 77-79 C 72-76 C- 70-71 D+ 67-69 D 62-66 D- 60-61 F 0-59 Attendance: Regular attendance in class and at labs is expected. Tests and Final Exam: There will be three tests during the semester to judge the student's progress in the course. These tests may include material from any readings, lectures, and labs. The final will be cumulative over the material for the entire semester. All tests and exams will be closed book. Make up tests will be allowed only if the absence is excused by the University. Programming Lab: Programming Labs begins the week starting August 31st and will be held in Manchester 241. Please bring your laptop, textbook, course notes, lab assignment, and any pre-lab materials to each lab. Academic Integrity: All work outside of the lab session should be done independently by each student. Copying of partial or complete work will be referred to the University Judicial System. You should keep evidence when possible to demonstrate your own work. Should a question of authorship arise you will be expected to produce documents that trace the development of your work. Algorithmic and electronic means of detecting copying may be used by the instructor on submitted assignments. Learning Assistance: If you have a disability that may require an accommodation for taking this course, please contact the Learning Assistance Center (758-5929) within the first two weeks of the semester. Course Calendar: Wednesday, August 26 First day of class Wednesday, September 30 1st of three tests, Last day to drop with a W Friday, October 16 Fall Break holiday Sunday, October 18 Midterm grades posted Monday, October 26 2nd of three tests Friday, November 20 th 3rd of three tests Wednesday, November 25 th Sunday, November 29 th Thanksgiving holiday Friday, December 4 Last day of class Friday, December 11 Final exam, 9:00am

University Closure: In the event that the University closes due to pandemic or other disaster, you will be provided with my home address, phone number, and a CSC 111 Lecture Plan document. You are requested to read the textbook material denoted within that document. Lecture and lab materials, in the form of Powerpoint slides and/or videos; lab programming exercises; and examination materials will be distributed electronically via the web, email, or via postal mail during the closure period. If the Internet is available, you should send electronic versions of your answers to the assignments to either my WFU email address or turketwh@gmail.com. Tests should be taken closed book, without access to papers, persons, or other resources, and submitted via postal mail. A return date for the examinations will be specified in the mailing. Topics Covered: Logical problem solving Relationship between problem solving and computer programming Fundamental elements of modern computer programming o Variables and Types o Operators o Control structures Conditionals Loops o Collections of data Arrays Data structures o Methods o Object oriented programming Classes and objects Inheritance and polymorphism o Input and output, interfaces o Concurrency Java programming language Software development environments Course Outcomes: By the end of this course, students will: Algorithms & Problem Solving Understand the differences between the concepts of a problem, an algorithm, and an implementation. Understand at a basic level the notion of concurrency, with respect to both computer architecture (multiple processors) and software (multiple tasks). Design an algorithm for a simple problem, independent of implementation Design an algorithm for a simple problem exploiting concurrency, independent of implementation

Programming Language Fundamentals Understand the definition of the general meaning of variables and variable types as used in computer programming languages Be able to explain the differences between each of the primitive types commonly found in programming languages and between primitive types and user-defined types Understand the concept of container (aggregate) data-structures, with particular depth of knowledge in arrays Be able to define the fundamental selection and repetition structures of modern programming languages and to choose structures appropriate for different problem scenarios Understand at an intermediate level the concept of procedural (function-based) programs and at an elementary level the concepts underlying OOP (classes and objects) and demonstrate an ability to decide between these approaches appropriately for a given problem. Understand the basic notions of command line and graphical user interfaces Implementations & Java Be able to read and explain how intermediate level programs, written in the Java programming language, work in solving a problem Demonstrate an ability to correctly modify simple procedural and OOP programs written in the Java programming language to obtain new outcomes. Demonstrate an ability to design and implement from scratch, simple procedural programs employing primitive types, container types, selection and repetition structures, input/output primitives, and interface components using the Java programming language Demonstrate an ability to design and implement, from scratch, simple programs employing basic OOP concepts using the Java programming language Demonstrate an ability to design and implement, from scratch, simple programs employing basic concurrency concepts using the Java programming language Understand the definition of external libraries and APIs and to employ external libraries within a program in the Java language. Software Development Processes Understand the role of compilation and the difference between high-level programming languages and how programs are executed on an underlying architecture Understand the difference between syntactical and logical program errors and be able to find and repair such errors Be able to employ, and explain the purpose of, simple unit testing during program development Demonstrate the ability to work within a simple integrated software development environment. Demonstrate the ability to document developed code at a basic level.

Planned Schedule: Topic/Book Chapter Date Chapter 1 Introduction, Problem solving 8/26 9/7 and programming Chapter 2 Variables and types, Operators 9/9 9/18 Chapter 3 Control flow 9/21 10/2 (Test 1) Chapter 4 Constructing interfaces 10/5 10/14 Chapter 5 Data structures and arrays 10/19 10/26 (Test 2) Chapter 6 Methods and classes 10/30 11/11 Chapter 8 Concurrent programming 11/13 11/30 (Test 3) The above schedule is tentative and is likely to be updated as the course proceeds.