CSci 160 Computing Science I. Sarah Carruthers Fall 2017

Size: px
Start display at page:

Download "CSci 160 Computing Science I. Sarah Carruthers Fall 2017"

Transcription

1 CSci 160 Computing Science I Sarah Carruthers Fall 2017

2 Administrivia Lecture: Tues. & Thurs. 11:30-1:00, Tues. 4:00-5:00 Instructor: Sarah Carruthers Office Hours: Mon. 3-4PM, Tues. 10:30-11:30 AM Course homepage: D2L Syllabus available on D2L, and handout Text:

3 Administrivia Mark breakdown: Assignments: 15% Reading Assessments: 10% Labs: 20% Exams: 55% (must pass final to pass the course) To pass the course you must pass both the lab portion of the course and the final exam

4 Course Topics Overview of software, hardware, and the development cycle C++ Basic data types Input and output Functions in C++ Control structures: branching and loops Abstract Data Types (arrays, structs, pointers) Algorithms Modularity and Design Dynamic data structures (linked lists)

5 Course Learning Outcomes Program Comprehension: Analyze and explain the behaviour of simple programs using the fundamental programming constructs Variables Expressions Assignments I/O Control constructs Functions Parameter Passing Recursion

6 Course Learning Outcomes Program Design: Design, implement, test, and debug a program that uses each of the following programming constructs: Basic computation simple I/O Standard conditional structures Standard iterative structures definitions of functions parameter passing constants enumerated types

7 Course Learning Outcomes Primitive Data Types: Identify and describe the use of primitive data types Write programs that use primitive data types Recursion: Describe the concept of recursion, and give examples of its use Identify the base case and the general case of a recursively-defined problem

8 Course Learning Outcomes Conditional and Iterative Constructs: Choose appropriate conditional and iteration construct for a given programming task Modify and expand short programs that use standard conditional and iterative control structures and functions

9 Course Learning Outcomes Advanced Data Types Write programs that use each of the following data structures: Arrays Structs Strings Write programs that use pointers for dynamic memory allocation and release Describe the concept of dynamic data structures and their uses Describe the concept of wild and dangling pointers Recognize the risks of wild an dangling pointers

10 Course Learning Outcomes Code Quality Apply consistent documentation and program style standards Describe the importance of consistent documentation and program style standards Create readable and maintainable software using conventions like documentation and program style standards

11 VIU Graduate Attributes Three Pillars: Literacies Intellectual and Practical Skills Civic Engagement

12 VIU Graduate Attributes Three Pillars: Literacies Technological Literacies Information Literacies Scientific Literacies Intellectual and Practical Skills Civic Engagement

13 VIU Graduate Attributes Three Pillars: Literacies Intellectual and Practical Skills Disciplinary Expertise Critical Thinking Inquiry and Ways of Knowing Safe and Ethical Practices Active Learning Civic Engagement

14 VIU Graduate Attributes Three Pillars: Literacies Intellectual and Practical Skills Civic Engagement Capacity to Engage in Respectful Relationships Foundations for Lifelong Learning Ethical Reasoning

15 Labs Weekly hands-on exercises 10 labs, each due before your next lab Each lab will consist of: in-lab portion (practice, help, not for marks) take home portion (for marks) self-assessment (for marks)

16 Assignments one middle of term (Oct. 29) one at end of term (Dec. 5) individual work to showcase what you ve learned

17 Assignments For 2 assignments: I will give you a set of requirements it is your job to design a solution it is OK to discuss your idea with your classmates, but you should each come up with your own design (they may be similar) it is your job to turn your design into code it is NOT OK to share your code it is OK to help debug your classmate s code

18 Reading Assessments Each week pre-readings will be posted You are responsible for these readings Assessed by online quiz

19 Lectures Lectures will consist of: syntax of C++ example code in-class exercises/quizzes quick response using Socrative or download the app hand-written coding exercises

20 Bonus Marks Everyone is eligible for up to 3% bonus marks, for completing up to 3 of the following: Video tutorial Blog tutorial Posting helpful material Finding an error in labs, assignments, demo code Getting help when you re stuck Helping a classmate when they re stuck Completing all the lab bonuses All except lab bonuses must be posted to D2L Discussion board Submit bonus checklist to D2L Details are on D2L

21 How to succeed in CSCI160 Attend labs and lectures In lecture we will cover: specifics of the language practice problems example code In lab you will get to: make mistakes in a safe environment ask for help practice

22 How to succeed in CSCI160 Practice practice practice! you re learning many things at once: how to program how to think like a computer scientist how to work on the command line a new language Do your own work the labs are there for you to practice cheating will not be tolerated

23 How to succeed in CSCI160 Practice practice practice! try the examples we do in class try to code things on your own when studying, redo your labs make code flash cards one side a verbal description other side the code

24 How to succeed in CSCI160 Write code by hand you ll need to write code for exams, don t wait until the midterm to practice Read code help your classmates when they re having trouble read their code and help find bugs

25 How to succeed in CSCI160 Plagiarism and cheating: Don t do it! Labs and assignments are designed to challenge you so that you can learn. Cheating bypasses this No learning = no passing exam (and you must pass the final to pass the course)

26 How to succeed in CSCI160 If you get stuck Come talk to me office hours after class by ask tutors for help talk to your classmates

27 Cheating copying from another person allowing someone to copy from you claiming someone else s work as yours collaborating on a test without authority taking a test for someone else acquiring academic material belonging to faculty or staff and more...

28 Plagiarism submitting another person s words as your own submitting another person s idea, opinion, or theory as your own even if paraphrased submitting facts, statistics, or illustrative materials without appropriate citation regardless of source

29 Plagiarism submitting another person s words as your own submitting another person s idea, opinion, or theory as your own even if paraphrased submitting facts, statistics, or illustrative materials without appropriate citation regardless of source

30 Penalty for Plagiarism and Cheating May include: failure of assignment or exam failing grade in course suspension from program

31 How to not cheat Write your own code Don t let others copy your code log out when you leave the room don t leave usb drives unattended don t throw out paper copies of work

32 The grey area.. Labs: in lab we will discuss algorithms and design strategies these are shared by everyone, and it is your job to implement them please talk to each other about these algorithms and ideas please do not copy code from each other look, think, write

33 Building Knowledge

34 Grammar Computational Thinking Creating Programs

35 Abstract Data Types Modularization Grammar Computational Thinking Creating Programs

36 Advanced ADTs Writing Programs Abstract Data Types Modularization Grammar Computational Thinking Creating Programs

37 How this course works We start with building blocks of the language (ABCs) Learn how to put these blocks together correctly (syntax) The green habit is crisply meandering. Learn how to put these blocks together meaningfully (semantics) There is a large rabbit on the hill who eats lots of carrots. Learn how to take a problem and craft a solution (write an essay) Tell a story that someone else understands, that is interesting to them

38 Today Quick look at history of C++ and programming Writing, compiling, and executing code Software and algorithms Programming Languages

39 C++ Programming Language a general-purpose, statically typed, free-form, multi-paradigm programming language

40 C++ Programming Language History Based on C language, it is C with Classes

41 Why learn C++? It is commonly used It is closely related to many other popular languages Java C PHP Perl It is versatile and multi-purpose

42 Basics of programming languages How we (as humans) talk to computers Different levels of language: low level languages that computers actually understand machine code assembly language hard for humans to read high-level languages that humans easily understand use English words (often) still need to be more rigorous and strict than natural language

43 How to talk to computers

44 Add 2 and 3 How to talk to computers int sum = 2+3; preprocess assemble link

45 A first C++ program /* * Author: Sarah Carruthers * Date: Fall 2017 * Purpose: A first program. Outputs "hello world" to the console, then terminates */ #include <iostream> int main(){ } std::cout << "Hello World" << std::endl; return 0;

46 How to compile In Linux, we use this command: g++ -Wall helloworld.cpp -o helloworldx If it works, we can then run our program on the command line:./helloworldx

47 Developing Software Programming requires Analyzing problem Determining an algorithm Expressing that algorithm in a programming language

48 Analyzing a problem What is the problem to be solved? User s perspective and needs Requirements should be carefully determined What general solution techniques are best? What data types/storage are best?

49 Developing an algorithm What is an algorithm? In small groups, think about this, and write down your definition...

50 Developing an algorithm What is an algorithm? In small groups, think about this, and write down your definition... Some answers:

51 Algorithm Definition: An Algorithm is a series of steps/instructions that solves a problem 1.Always outputs the correct result on any valid input 2.Always halts 3.Is unambiguous

52 Warm up Come up with an algorithm to draw a square:

53 Exercise Come up with an algorithm to draw the following Write it down as accurately as you can

54 Exercise Choose a partner, and swap algorithms Following their instructions exactly, draw what their algorithm describes did it work? If necessary, fix each other s algorithms

55 Exercise After thoughts: what were some common problems? how could you fix them?

56 Programming languages Which programming language is appropriate? Which are available/known? Which are supported by the user s system? Which are appropriate for the kind of problem being solved?

57 Programming languages High level Language Assembly Language Machine Language Human readable Mneumonics Binary sequences int i=3; MOV AL 3h

58 Programming languages High level Language Assembly Language Machine Language Human readable Mneumonics Binary sequences int i=3; MOV AL 3h

59 Programming languages Many, many languages to choose from, including: C, C++, Java, Objective-C, C#, Javascript, Python, Ruby... (general purpose) R, Fortran, Matlab, Mathematica... (scientific, mathematics) Prolog (logic) Cobol (business reporting)

60 This class: C++ Developed by Kernighan and Ritchie at Bell Labs Descendent of C Object-oriented Suitable for: cross platform development small projects large projects

61 How code becomes a program myprog.cpp #included header C++ preprocessor compiler assembler linker files temporary file myprog.s myprog.o myprog

62 Development Cycle We write programs to solve problems Understand the problem Break it down into manageable pieces Design a solution Think about the solution. Can it be improved? Write code (implement your solution) Test your solution Test incrementally AND Test final solution Fix as needed Follow a good development cycle a good system will work for small projects and large projects

63 Development Cycle Analyze the problem given Come up with a solution Code the solution Compile and run Test with data

64 Incremental Development Start small, compile, and add If planned properly it is possible to: Frame out the structure of the program Function declarations and definitions Leave body empty Add functionality a bit at a time

65 Analysis phase write a program to calculate the area of a circle Carefully describe the following: Inputs:? Outputs:? How do we turn inputs into outputs?

66 Analysis phase You need to write a program to calculate the area of a circle Analysis: Inputs: radius of the circle Outputs: area of the circle How do we turn inputs into outputs?

67 Design Phase High level breakdown of problem 1.Ask the user for the radius 2.Read in the radius from user 3.Calculate the area of a circle given the input radius 4.Output the area to the user

68 Design Phase Ask the user for the radius expect integer input Read the radius from user Calculate the area of a circle given the input radius Area = PI*radius*radius Output the area to the user

69 Exercise The problem: Convert a price in Euros to Canadian Dollars, then add 5% GST to it Do Analysis Phase Input, output, high level description Do Design Phase Detailed description

70 Analysis phase Convert a price in Euros to Canadian Dollars, then add 5% GST to it Carefully describe the following: Inputs:? Outputs:? How do we turn inputs into outputs?

71 Design Phase High level breakdown of problem 1...

72 Writing C++ Code Once we ve finished the Analysis and Design stages... Time to write some code! What is a programming language? What do we need to know to write in a new language like C++?

73 Programming Language Definition A programming language is a language designed to help you structure your instructions to a computer in a format that you can easily read and understand (relatively speaking). Programming is really just a way of organizing a task so that it is replicable by something else -- a computer. If you have ever given someone directions, or written down a recipe, you have some experience with programming.

74 Programming Languages: C++ C++ is a high-level language designed to be human readable still needs to be correct to work We care about 2 kinds of correctness syntax semantics

75 Syntax and Semantics Syntax (the grammar): What combinations of symbols are legally allowed English language example The panda eats, shoots and leaves. Sentence is well-formed Follows rules of English grammar Semantics (the meaning): What is the meaning of a syntactically correct phrase? English language example Colourless green ideas sleep furiously - Chomsky Syntactically correct, semantically meaningless or ambiguous

76 Exercise Come up with a sentence that is: 1.Syntactically correct and semantically incorrect 2.Syntactically incorrect

77 Syntax and Semantics: Why do we care? We have to follow the rules of syntax for our code to compile Code must be compiled in order to run If we want our code to do what we mean, we have to follow rules of semantics Semantically incorrect code will compile but might crash or do the wrong thing

78 Syntax and Semantics: Why do we care? Tools can help use catch syntax errors Compilers parse our code to make it into a program Analyze a string of symbols Based on formal grammar Syntax errors occur if incorrect Program will not compile and therefore not run

79 How code becomes a program myprog.cpp #included header C++ preprocessor compiler assembler linker files temporary file myprog.s myprog.o myprog

80 Compiler parses code into a tree-like structure Based on rules or syntax of the language If your code has syntax errors, compile fails

81 No program L myprog.cpp #included header C++ preprocessor compiler assembler linker files temporary file myprog.s myprog.o myprog

82 Survey

83 For Thursday get set up with Socrative or install the app (we will use it in class Thursday) Do the Intro. readings and the first reading assessment quiz (on D2L)

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

Administration Computers Software Algorithms Programming Languages

Administration Computers Software Algorithms Programming Languages Administration Computers Software Algorithms Programming Languages http://www.cs.sfu.ca/cc/130/johnwill/ This course does not use Canvas John Edgar 3 Come to class Read ahead Attend the labs You get practice

More information

CS 113: Introduction to

CS 113: Introduction to CS 113: Introduction to Course information MWF 12:20-1:10pm 1/21-2/15, 306 Hollister Hall Add/drop deadline: 1/28 C Instructor: David Crandall See website for office hours and contact information Prerequisites

More information

CSE 504: Compiler Design

CSE 504: Compiler Design http://xkcd.com/303/ Compiler Design Course Organization CSE 504 1 / 20 CSE 504: Compiler Design http://www.cs.stonybrook.edu/~cse504/ Mon., Wed. 2:30pm 3:50pm Harriman Hall 116 C. R. Ramakrishnan e-mail:

More information

CSCI 3136 Principles of Programming Languages

CSCI 3136 Principles of Programming Languages CSCI 3136 Principles of Programming Languages Summer 2013 Faculty of Computer Science Dalhousie University 1 / 100 CSCI 3136 Principles of Programming Languages Summer 2013 Aminul Islam Faculty of Computer

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

More information

Updated: 2/14/2017 Page 1 of 6

Updated: 2/14/2017 Page 1 of 6 MASTER SYLLABUS 2017-2018 A. Academic Division: Business, Industry, and Technology B. Discipline: Engineering Technology C. Course Number and Title: ENGR1910 Engineering Programming D. Course Coordinator:

More information

Advanced Programming Concepts. CIS 15 : Spring 2007

Advanced Programming Concepts. CIS 15 : Spring 2007 Advanced Programming Concepts CIS 15 : Spring 2007 Mondays and Thursdays 12:15 pm to 1:30 pm 232 Ingersoll Extension Instructor: Chipp Jansen (not Tennenbaum as listed) E-mail: chipp@sci.brooklyn.cuny.edu

More information

INFS 2150 (Section A) Fall 2018

INFS 2150 (Section A) Fall 2018 INFS 2150 (Section A) Fall 2018 Introduction to Web Development Class meets TUE & THU: 12:30am-1:45pm: in Wheatley 114 Instructor: Peter Y. Wu Office: Wheatley 309 Office Hours: Tuesday 9:00 am-12:00 noon;

More information

(0) introduction to the course. how to learn a programming language. (0) course structure

(0) introduction to the course. how to learn a programming language. (0) course structure topics: (0) introduction to the course (1) what is a computer? instructor: cis1.5 introduction to computing using c++ (robotics applications) spring 2008 lecture # I.1 introduction Prof Azhar, mqazhar@sci.brooklyn.cuny.edu

More information

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone  Address Office Hours I n f o r m a t i o n a n d C o m p u t e r S c i e n c e D e p a r t m e n t Syllabus ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) Course Website: Blackboard CE 8 (WebCT) http://webcourses.kfupm.edu.sa/

More information

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008 Course Syllabus Course Title: Compiler Construction Course Level: 4 Lecture Time: Course

More information

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in

More information

CIS* Programming

CIS* Programming CIS*1300 - Programming CALENDAR DESCRIPTION This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program design, problem solving and algorithm

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

Introduction to Data Structures

Introduction to Data Structures 15-121 Introduction to Data Structures Lecture #1 Introduction 28 August 2019 Margaret Reid-Miller Today Course Administration Overview of Course A (very basic) Java introduction Course website: www.cs.cmu.edu/~mrmiller/15-121

More information

CS 6371: Advanced Programming Languages

CS 6371: Advanced Programming Languages CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2017 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures

More information

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,

More information

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Today. An Animated Introduction to Programming. Prerequisites. Computer programming Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Section 1 Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu

More information

WELCOME! (download slides and.py files and follow along!) LECTURE 1

WELCOME! (download slides and.py files and follow along!) LECTURE 1 WELCOME! (download slides and.py files and follow along!) 6.0001 LECTURE 1 6.0001 LECTURE 1 1 TODAY course info what is computation python basics mathematical operations python variables and types NOTE:

More information

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018 Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018 CSCI 136 Section 00 Instructor: Michael Cassens Office: SS 411 Office Hours: MWF 11:00-11:50 am or by appt Phone: (415) 787-0577 E-mail: michael.cassens@mso.umt.edu

More information

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca COMP 1010- Summer 2015 (A01) Jim (James) Young young@cs.umanitoba.ca jimyoung.ca Hello! James (Jim) Young young@cs.umanitoba.ca jimyoung.ca office hours T / Th: 17:00 18:00 EITC-E2-582 (or by appointment,

More information

ITSC 1319 INTERNET/WEB PAGE DEVELOPMENT SYLLABUS

ITSC 1319 INTERNET/WEB PAGE DEVELOPMENT SYLLABUS SAIGONTECH ITSC 1319 INTERNET/WEB PAGE DEVELOPMENT SYLLABUS CRN: Semester: Summer 2015 Class name: IWPD Campus and Room: SaigonTech Tower Lab 211 Days and Times: Lecture: Tue. 7:30 11:45 Tutor: Fri. 7:30

More information

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008 Course Syllabus Course Title: Advanced Databases Course Level: 4 Lecture Time: Course code:

More information

Computer Science Department

Computer Science Department California State University, Dominguez Hills Computer Science Department Syllabus CS255 Dynamic Web Programming Dr. Jason Isaac Halasa Office Hours: MW 12:45-2:30 and 3:45-5:30 and by Appointment Office

More information

Cleveland State University

Cleveland State University Cleveland State University CIS 260/500 Introduction to Programming (4 credits). Spring 2015 Section 2/ 50 Class Nbr. 1810/1855 Tue, Thu 12:30 PM 2:20 PM Section 2/ 50 Class Nbr. 1813/1856. Tue, Thu 4:00

More information

Scientific Computing

Scientific Computing Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course

More information

Introduction to Basis and Practice in Programming

Introduction to Basis and Practice in Programming Introduction to Basis and Practice in Programming Fall 2015 Jinkyu Jeong (jinkyu@skku.edu) 1 Course Overview Course Basics! Class hour GEDB029-45: Mon. 13:00 ~ 14:50 GEDB029-46: Tue. 13:00 ~ 14:50 1~2

More information

COSC 115A: Introduction to Web Authoring Fall 2014

COSC 115A: Introduction to Web Authoring Fall 2014 COSC 115A: Introduction to Web Authoring Fall 2014 Instructor: David. A. Sykes Class meetings: TR 1:00-2:20PM in Daniel Building, Room 102 Office / Hours: Olin 204E / TR 8:00-10:45AM, MWF 9:00 10:20AM,

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (s) Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location:

More information

You must pass the final exam to pass the course.

You must pass the final exam to pass the course. Computer Science Technology Department Houston Community College System Department Website: http://csci.hccs.cc.tx.us CRN: 46876 978-1-4239-0146-4 1-4239-0146-0 Semester: Fall 2010 Campus and Room: Stafford

More information

CS 3030 Scripting Languages Syllabus

CS 3030 Scripting Languages Syllabus General Information CS 3030 Scripting Languages Semester: Fall 2017 Textbook: Location: Instructor Info: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

More information

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 SYL-410-2014C CS 410 - Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 Course location: 107 ERB, Evansdale Campus Course times: Tuesdays and Thursdays, 2:00-3:15 Course

More information

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Spring 2018 El Camino College E. Ambrosio. Course Syllabus Course Syllabus Division: Mathematical Sciences Course Title: Computer Programming in Java Course #/Sections: CS 3/0127, 0128 Credit Hours: 4 Course Time/Room: Lecture: TTh 6:25 7:50 P.M./MBA 213 Lab:

More information

CS102 Unit 2. Sets and Mathematical Formalism Programming Languages and Simple Program Execution

CS102 Unit 2. Sets and Mathematical Formalism Programming Languages and Simple Program Execution 1 CS102 Unit 2 Sets and Mathematical Formalism Programming Languages and Simple Program Execution 2 Review Show how "Hi!\n" would be stored in the memory below Use decimal to represent each byte Remember

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

Compilers for Modern Architectures Course Syllabus, Spring 2015

Compilers for Modern Architectures Course Syllabus, Spring 2015 Compilers for Modern Architectures Course Syllabus, Spring 2015 Instructor: Dr. Rafael Ubal Email: ubal@ece.neu.edu Office: 140 The Fenway, 3rd floor (see detailed directions below) Phone: 617-373-3895

More information

CS1 Lecture 3 Jan. 22, 2018

CS1 Lecture 3 Jan. 22, 2018 CS1 Lecture 3 Jan. 22, 2018 Office hours for me and for TAs have been posted, locations will change check class website regularly First homework available, due Mon., 9:00am. Discussion sections tomorrow

More information

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview. Programming 2 (112) Lecture 0 College of Computer Science and Engineering Taibah University S2, 1439 Outline Important Information Lecture Protocol Subject Overview General Overview Course Objectives Studying

More information

Introduction to C. CS 2060 Week 1. Prof. Jonathan Ventura. Outline Introduction Introduction to C Homework 1 C Coding Style Wrap-up

Introduction to C. CS 2060 Week 1. Prof. Jonathan Ventura. Outline Introduction Introduction to C Homework 1 C Coding Style Wrap-up Outline Introduction Homework 1 C Coding Style Wrap-up CS 2060 Week 1 Outline Introduction Homework 1 C Coding Style Wrap-up 1 Introduction Why C? Syllabus and Course Structure 2 First C example: Hello,

More information

CS120 Computer Science I. Instructor: Jia Song

CS120 Computer Science I. Instructor: Jia Song CS120 Computer Science I Instructor: Jia Song Instructor Contact Information Instructor: Dr. Jia Song Email: jsong@uidaho.edu (Preferred) Phone: (208) 885-1710 Office: JEB 240 (CSDS Security Lab) JEB 340

More information

Lecture 1. Course Overview, Python Basics

Lecture 1. Course Overview, Python Basics Lecture 1 Course Overview, Python Basics We Are Very Full! Lectures and Labs are at fire-code capacity We cannot add sections or seats to lectures You may have to wait until someone drops No auditors are

More information

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview. Programming 1 (111) Lecture 0 College of Computer Science and Engineering Taibah University S1, 1439 Outline Important Information Lecture Protocol Subject Overview General Overview Course Objectives Studying

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

CS 351: Design of Large Programs.

CS 351: Design of Large Programs. Welcome to CS 351 Design of Large Programs Instructor: Joel Castellanos e-mail: joel@unm.edu Web: http://cs.unm.edu/~joel/ Office: Electrical and Computer Engineering building (ECE). Room 233 1/18/2017

More information

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed

More information

CS 3813/718 Fall Python Programming. Professor Liang Huang.

CS 3813/718 Fall Python Programming. Professor Liang Huang. CS 3813/718 Fall 2012 Python Programming Professor Liang Huang huang@cs.qc.cuny.edu http://vision.cs.qc.cuny.edu/huang/python-2012f/ Logistics Lectures: TTh 9:25-10:40 am SB B-141 Personnel Instructor

More information

CSCI 201L Syllabus Principles of Software Development Spring 2018

CSCI 201L Syllabus Principles of Software Development Spring 2018 L Syllabus Principles of Software Development Spring 2018 Instructor: Jeffrey Miller, Ph.D. Email: jeffrey.miller@usc.edu Web Page: http://www-scf.usc.edu/~csci201 Office: SAL 342 Phone: 213-740-7129 Lectures:

More information

Outline. CIS 110: Introduction to Computer Programming. What is Computer Science? What is computer programming? What is computer science?

Outline. CIS 110: Introduction to Computer Programming. What is Computer Science? What is computer programming? What is computer science? Outline CIS 110: Introduction to Computer Programming Lecture 1 An introduction of an introduction ( 1.1 1.3)* 1. What is computer science and computer programming? 2. Introductions and logistics 3. The

More information

COMP 1130 Programming Fundamentals (Javascript Rocks)

COMP 1130 Programming Fundamentals (Javascript Rocks) COMP 1130 Programming Fundamentals (Javascript Rocks) Class Website URL Teacher Contact Information High School Credits Concurrent Enrollment Course Description http://online.projectsocrates.org Mr. Roggenkamp

More information

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18 COSC 2P95 Introduction Week 1 Brock University Brock University (Week 1) Introduction 1 / 18 Lectures and Labs Lectures are Thursdays, from 3pm 5pm (AS/STH 217) There are two lab sections Lab 1 is Mondays,

More information

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST) Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department

More information

EP241 Computer Programming

EP241 Computer Programming EP241 Computer Programming Topic 1 Dr. Ahmet BİNGÜL Department of Engineering Physics University of Gaziantep Modifications by Dr. Andrew BEDDALL Department of Electric and Electronics Engineering Sep

More information

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015 CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015 INSTRUCTOR: Dr. Ray Maleh Adjunct Professor, Department of Computer Science Office: TBD Email: Ray_Maleh@tamuc.edu Office Hours: Mondays 7:10 PM 8:10 PM,

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description CNG 140 C Programming 2012-2013 Fall Semester Syllabus Course Info Catalog Description Advanced programming with C: Storage and control structures, recursion and programming with dynamic data structures.

More information

Welcome to CS 115 (Winter 2019)

Welcome to CS 115 (Winter 2019) Welcome to CS 115 (Winter 2019) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs

More information

15-411/ Compiler Design

15-411/ Compiler Design 15-411/15-611 Compiler Design Jan Hoffmann Fall 2016 http://www.cs.cmu.edu/~janh/courses/411/16 Teaching Staff Instructor: Jan Hoffmann Office hours: Tue 10:30am-noon Thu 1:00pm-2:30pm at GHC 9105 Teaching

More information

Welcome to CS 115 (Winter 2018)

Welcome to CS 115 (Winter 2018) Welcome to CS 115 (Winter 2018) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs

More information

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG) SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

ISM 324: Information Systems Security Spring 2014

ISM 324: Information Systems Security Spring 2014 ISM 324: Information Systems Security Spring 2014 Instructor: Co-Instructor: Office: E-Mail: Phone: Office Hours: Jeffrey Wall Hamid Nemati 392 Bryan Building jdwall2@uncg.edu (email is the preferred method

More information

ECE573 Introduction to Compilers & Translators

ECE573 Introduction to Compilers & Translators ECE573 Introduction to Compilers & Translators Tentative Syllabus Fall 2005 Tu/Th 9:00-10:15 AM, EE 115 Instructor Prof. R. Eigenmann Tel 49-41741 Email eigenman@ecn Office EE334C Office Hours Tu 10:15-11:30

More information

De La Salle University College of Computer Studies. Course Syllabus

De La Salle University College of Computer Studies. Course Syllabus De La Salle University College of Computer Studies Course Syllabus COMPRO1 / Introduction Computer Programming (3 units) Prerequisite : None Prerequisite : COMPRO2 Type of Course : Basic ITE course / Lecture

More information

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main

More information

CS 50 Introduction to Computer Science I

CS 50 Introduction to Computer Science I CS 50 Introduction to Computer Science I Michael D. Smith smith@eecs.harvard.edu Fall 2005 CS50 1 Q1: What s in common? Internet commerce and electronic markets Blockbuster movies and their special effects

More information

CS 150 Introduction to Computer Science 1

CS 150 Introduction to Computer Science 1 CS 150 Introduction to Computer Science 1 Professor: Chadd Williams CS150 Introduction to Computer Science 1 Chadd Williams http://zeus.cs.pacificu.edu/chadd chadd@pacificu.edu Office 202 Strain Office

More information

Computer Science 210: Data Structures

Computer Science 210: Data Structures Computer Science 210: Data Structures Welcome to Data Structures! Data structures are fundamental building blocks of algorithms and programs Csci 210 is a study of data structures design efficiency implementation

More information

New York City College of Technology/CUNY Department of Computer Systems Technology. CST2400 Computer System Management and Support 4 hours 3 credits

New York City College of Technology/CUNY Department of Computer Systems Technology. CST2400 Computer System Management and Support 4 hours 3 credits New York City College of Technology/CUNY Department of Computer Systems Technology CST2400 Computer System Management and Support 4 hours 3 credits Instructor: Office Phone: Office Hours: Class Meetings:

More information

Object-Oriented Programming for Managers

Object-Oriented Programming for Managers 95-807 Object-Oriented Programming for Managers 12 units Prerequisites: 95-815 Programming Basics is required for students with little or no prior programming coursework or experience. (http://www.andrew.cmu.edu/course/95-815/)

More information

Lecture 1. Course Overview, Python Basics

Lecture 1. Course Overview, Python Basics Lecture 1 Course Overview, Python Basics We Are Very Full! Lectures are at fire-code capacity. We cannot add sections or seats to lectures You may have to wait until someone drops No auditors are allowed

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours:

More information

CSci Introduction to Operating Systems. Administrivia, Intro

CSci Introduction to Operating Systems. Administrivia, Intro CSci 4061 Introduction to Operating Systems Administrivia, Intro Me: Welcome to 4061! Jon Weissman CS Professor circa 1999 Call me Jon TAs: Zach Leidall, Francis Liu, Fei Wu, Parag Panda, Gaurav Khandelwal

More information

Exam 1. CSI 201: Computer Science 1 Fall 2018 Professors: Shaun Ramsey

Exam 1. CSI 201: Computer Science 1 Fall 2018 Professors: Shaun Ramsey Exam 1 CSI 201: Computer Science 1 Fall 2018 Professors: Shaun Ramsey I understand that this exam is closed books and closed notes and is to be completed without a calculator, phone, or other computer.

More information

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/h18

More information

Chapter 2 Basic Elements of C++

Chapter 2 Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2-1 Chapter 2 Basic Elements of C++ At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion

More information

1DL321: Kompilatorteknik I (Compiler Design 1)

1DL321: Kompilatorteknik I (Compiler Design 1) Administrivia 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/ht16

More information

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers Leonidas Fegaras CSE 5317/4305 L1: Course Organization and Introduction 1 General Course Information Instructor:

More information

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: BSc. in Computer Science. Laboratory (Practical) Field or Work Placement

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: BSc. in Computer Science. Laboratory (Practical) Field or Work Placement SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: BSc. in Computer Science 1. Course Code COMP2102 2. Course Title Problem Solving and Programming 3. Credits 3 4. Pre-requisite Course(s) COMP2101 5. Co-requisite

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

CS153: Compilers Lecture 1: Introduction

CS153: Compilers Lecture 1: Introduction CS153: Compilers Lecture 1: Introduction Stephen Chong https://www.seas.harvard.edu/courses/cs153 Source Code What is this course about?? Compiler! Target Code 2 What is this course about? How are programs

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Course and contact information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours: Section 4

More information

Lecture 01 & 02 Computer Programming

Lecture 01 & 02 Computer Programming Lecture 01 & 02 Computer Programming 15 Computer Systems Engineering Second Semester By: Mr. Ali Asghar Manjotho, Lecturer, CSE-MUET Contents Computer programming (LL 02) Why programming? (LL 02) Instructions

More information

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount

More information

CS-XXX: Graduate Programming Languages. Lecture 9 Simply Typed Lambda Calculus. Dan Grossman 2012

CS-XXX: Graduate Programming Languages. Lecture 9 Simply Typed Lambda Calculus. Dan Grossman 2012 CS-XXX: Graduate Programming Languages Lecture 9 Simply Typed Lambda Calculus Dan Grossman 2012 Types Major new topic worthy of several lectures: Type systems Continue to use (CBV) Lambda Caluclus as our

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Course Code: CS 212 Semester: 2 nd Credit Hours: 3+1 Prerequisite Codes: CS-110: Fundamentals of Computer Programming Instructor: Shamyl Bin Mansoor Class: BESE-5 AB Office:

More information

CSE 240 Introduction to Computer Architecture

CSE 240 Introduction to Computer Architecture What s All About?! Introduction to Computer Architecture The new CSE240: Not at 9am!!! New approach (bottom up) New textbook New instructor Well integrated into curriculum Cooler assignments (demo coming

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

Course Title: Network+/Networking Fundamentals. Course Section: CNS-101-I1. FORMAT: Online

Course Title: Network+/Networking Fundamentals. Course Section: CNS-101-I1. FORMAT: Online Course Title: Network+/Networking Fundamentals Course Section: CNS-101-I1 FORMAT: Online TIME FRAME: Start Date: 15 January 2018 End Date: 06 May 2018 CREDITS: 4 INSTRUCTOR: Carlos J. Garcia Office Hours:

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

COSC 115: Introduction to Web Authoring Fall 2013

COSC 115: Introduction to Web Authoring Fall 2013 COSC 115: Introduction to Web Authoring Fall 2013 Instructor: David. A. Sykes Class meetings: TR 1:00 2:20PM, Olin 212 Office / Hours: Olin 204E / TR 8:00-10:20AM, MWF 1:00 3:00PM, or by appointment/happenstance

More information

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CS 240 Fall 2015 Section 004. Alvin Chao, Professor CS 240 Fall 2015 Section 004 Alvin Chao, Professor Today Course overview Data Structures / Algorithms Course policies The C language Motivation Computers are digital Data is stored in binary format (1's

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (Labs) Spring 2019 Course and Contact Information Instructor: Ron Mak Office Location:

More information

CMSC 201 Fall 2016 Lab 09 Advanced Debugging

CMSC 201 Fall 2016 Lab 09 Advanced Debugging CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

CS 241 Computer Programming. Introduction. Teacher Assistant. Hadeel Al-Ateeq

CS 241 Computer Programming. Introduction. Teacher Assistant. Hadeel Al-Ateeq CS 241 Computer Programming Introduction Teacher Assistant Hadeel Al-Ateeq 1 2 Course URL: http://241cs.wordpress.com/ Hadeel Al-Ateeq 3 Textbook HOW TO PROGRAM BY C++ DEITEL AND DEITEL, Seventh edition.

More information